2020-09-07 19:09:46 +00:00
#!/bin/bash
set -eu -o pipefail
2020-10-19 14:50:47 +00:00
init_composer() {
set -eu
2020-10-24 17:01:17 +00:00
if [ -n " ${ OPENID_ENABLED - } " ]; then
2020-10-19 14:50:47 +00:00
if ! type composer > /dev/null 2>&1; then
2020-10-19 15:30:15 +00:00
apt update && apt install -y curl git unzip zip
2020-10-19 14:50:47 +00:00
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.15
composer -V
fi
fi
}
2020-10-19 15:33:22 +00:00
composer_install() {
2020-10-19 14:50:47 +00:00
set -eu
2020-10-24 17:01:17 +00:00
if [ -n " ${ OPENID_ENABLED - } " ]; then
2020-10-19 15:33:22 +00:00
cd /var/www/html/ && composer update && composer install
2020-09-16 20:19:23 +00:00
fi
2020-10-15 16:11:54 +00:00
}
init_db() {
set -eu
if ! type mysql > /dev/null 2>&1; then
2021-02-16 16:10:31 +00:00
apt update -qq && apt install -yqq mariadb-client
2020-10-15 16:11:54 +00:00
fi
2020-09-07 21:04:41 +00:00
2020-10-05 23:32:46 +00:00
PASSWORD=$(cat /run/secrets/db_password)
2020-10-24 01:56:05 +00:00
# FIXME 3wc: replace with sql.php, not sure how to parse output:
# stdClass Object
#(
# [TOTAL] => 58
#)
2020-10-05 23:32:46 +00:00
TABLE_COUNT=$(mysql -u " ${ DB_USER } " --password=" $ PASSWORD " -h " ${ DB_HOST } " " ${ DB_NAME } " -e "SELECT count(*) AS TOTAL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'mediawiki';" -N -B)
2020-09-07 21:04:41 +00:00
2020-09-16 20:19:23 +00:00
if [[ " ${ TABLE_COUNT } " == "0" ]]; then
2020-10-24 01:56:05 +00:00
php /var/www/html/maintenance/sql.php < /var/www/html/maintenance/tables.sql
php /var/www/html/maintenance/sql.php < /var/www/html/maintenance/interwiki.sql
# FIXME run createAndPromote.php with $ ADMIN_USERNAME
2020-09-16 20:19:23 +00:00
else
php /var/www/html/maintenance/update.php
fi
2021-02-16 14:22:51 +00:00
if [ -n " ${ OPENID_ENABLED - } " ]; then
php /var/www/html/maintenance/update.php
fi
2020-09-16 20:19:23 +00:00
}
2021-02-16 16:08:47 +00:00
init_extensions() {
2020-09-16 20:19:23 +00:00
if [ ! -d /var/www/html/extensions/PluggableAuth ]; then
git clone --depth 1 -b REL1_32 \
https://gerrit.wikimedia.org/r/p/mediawiki/extensions/PluggableAuth \
/var/www/html/extensions/PluggableAuth
fi
2020-10-24 17:01:17 +00:00
if [ -n " ${ SAML_ENABLED - } " ]; then
2020-10-15 16:23:45 +00:00
if [ ! -d /var/www/html/extensions/SimpleSAMLphp ]; then
git clone --depth 1 -b REL1_32 \
https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SimpleSAMLphp \
/var/www/html/extensions/SimpleSAMLphp
fi
fi
2020-10-24 17:01:17 +00:00
if [ -n " ${ OPENID_ENABLED - } " ]; then
2020-10-19 15:22:57 +00:00
if [ ! -d /var/www/html/extensions/OpenIDConnect ]; then
2020-10-15 16:23:45 +00:00
git clone --depth 1 -b REL1_35 \
2020-10-15 16:26:40 +00:00
https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect \
2020-10-15 16:23:45 +00:00
/var/www/html/extensions/OpenIDConnect
fi
2020-09-16 20:19:23 +00:00
fi
2020-09-07 19:09:46 +00:00
}
main() {
2020-09-16 20:19:23 +00:00
set -eu
2021-02-16 16:08:47 +00:00
init_extensions
2021-02-16 14:19:54 +00:00
init_db
2020-10-19 14:50:47 +00:00
init_composer
2020-10-19 15:33:22 +00:00
composer_install
2020-09-07 19:09:46 +00:00
}
main
2020-10-24 01:56:51 +00:00
apache2-foreground