#!/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