forked from coop-cloud/mediawiki
88 lines
2.3 KiB
Bash
Executable File
88 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eu -o pipefail
|
|
|
|
init_composer() {
|
|
set -eu
|
|
|
|
if ! type composer > /dev/null 2>&1; then
|
|
apt update -yqq && apt install -yqq curl git unzip zip
|
|
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
|
|
}
|
|
|
|
composer_install() {
|
|
set -eu
|
|
|
|
cd /var/www/html/ && composer update && composer install
|
|
}
|
|
|
|
init_db() {
|
|
set -eu
|
|
|
|
if ! type mysql > /dev/null 2>&1; then
|
|
apt update -qq && apt install -yqq mariadb-client
|
|
fi
|
|
|
|
PASSWORD=$(cat /run/secrets/db_password)
|
|
# FIXME 3wc: replace with sql.php, not sure how to parse output:
|
|
# stdClass Object
|
|
#(
|
|
# [TOTAL] => 58
|
|
#)
|
|
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)
|
|
|
|
if [[ "${TABLE_COUNT}" == "0" ]]; then
|
|
php /var/www/html/maintenance/generateSchemaSql.php
|
|
php /var/www/html/maintenance/sql.php /var/www/html/maintenance/tables-generated.sql
|
|
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
|
|
else
|
|
php /var/www/html/maintenance/update.php --quick
|
|
fi
|
|
|
|
if [ -n "${OPENID_ENABLED-}" ]; then
|
|
php /var/www/html/maintenance/update.php --quick
|
|
fi
|
|
}
|
|
|
|
init_extensions() {
|
|
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
|
|
|
|
if [ -n "${SAML_ENABLED-}" ]; then
|
|
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
|
|
|
|
if [ -n "${OPENID_ENABLED-}" ]; then
|
|
if [ ! -d /var/www/html/extensions/OpenIDConnect ]; then
|
|
git clone --depth 1 -b REL1_35 \
|
|
https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect \
|
|
/var/www/html/extensions/OpenIDConnect
|
|
fi
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
set -eu
|
|
|
|
init_extensions
|
|
init_composer
|
|
composer_install
|
|
init_db
|
|
}
|
|
|
|
main
|
|
|
|
apache2-foreground
|