Skip to content

Instantly share code, notes, and snippets.

@sbassett29
Created May 7, 2024 19:38
Show Gist options
  • Save sbassett29/1547bcb995744596b77126d8ac760082 to your computer and use it in GitHub Desktop.
Save sbassett29/1547bcb995744596b77126d8ac760082 to your computer and use it in GitHub Desktop.
A basic mediawiki-docker/ext:gadgets install script
#!/usr/bin/env bash
################################################################################
# Author: [email protected]
# License: Apache 2 <https://opensource.org/licenses/Apache-2.0>
# Usage: chmod +x install-gadget-test-mw.sh && ./install-gadget-test-mw.sh
################################################################################
set -euo pipefail
# check binary dependencies
bins=("cat" "echo" "git" "docker")
for bin in "${bins[@]}"; do
if [[ -z $(which $bin) ]]; then
printf "dependency '$bin' does not appear to be installed - exiting.\n"
exit 1
fi
done
# vars
INSTALL_DIR="core-gadget-testing"
SKINS_DIR="skins"
EXTS_DIR="extensions"
# shallow clone mediawiki core into install dir
git clone --depth=1 "https://gerrit.wikimedia.org/r/mediawiki/core" "$INSTALL_DIR"
# set up .env, etc.
cd "$INSTALL_DIR"
cat <<EOT >> .env
MW_SCRIPT_PATH=/w
MW_SERVER=http://localhost:8081
MW_DOCKER_PORT=8081
MEDIAWIKI_USER=Admin
MEDIAWIKI_PASSWORD=dockerpass
XDEBUG_CONFIG=
XDEBUG_ENABLE=true
XHPROF_ENABLE=true
EOT
echo "MW_DOCKER_UID=$(id -u)
MW_DOCKER_GID=$(id -g)" >> .env
# docker compose up
docker compose up -d
# install composer deps for core
docker compose exec mediawiki composer update --no-dev
# install skins
cd "$SKINS_DIR"
git clone --depth=1 "https://gerrit.wikimedia.org/r/mediawiki/skins/Vector"
docker compose exec -i mediawiki bash -c "cd skins/Vector && composer update --no-dev"
cd ..
# install exts
cd "$EXTS_DIR"
git clone --depth=1 "https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets"
docker compose exec -i mediawiki bash -c "cd extensions/Gadgets && composer update --no-dev"
cd ..
# command-line mw install
docker compose exec mediawiki /bin/bash /docker/install.sh
# append ext/skin loads to LS.php
echo "wfLoadExtension( 'Gadgets' );" >> LocalSettings.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment