#!/bin/bash # # Mediawiki upgrader. # # Config parameters BASENAME="`basename $0`" RELEASES="http://releases.wikimedia.org/mediawiki/" # Sudo config if [ "`whoami`" != 'root' ]; then sudo="sudo" fi # Deploy function mediawiki_deploy { VERSION="$1" MAJOR_VERSION="`echo $VERSION | cut -d . --fields=1,2`" TARBALL="mediawiki-$VERSION.tar.gz" if [ -z "$VERSION" ]; then echo "usage: $BASENAME deploy " exit 1 fi $sudo wget $RELEASES/$MAJOR_VERSION/$TARBALL || exit 1 $sudo wget $RELEASES/$MAJOR_VERSION/$TARBALL.sig || exit 1 gpg --verify $TARBALL.sig $TARBALL $sudo tar xvf $TARBALL || exit 1 $sudo chown -R root. mediawiki-$VERSION || exit 1 $sudo rm $TARBALL* $sudo ln -sf mediawiki-$VERSION mediawiki } # Upgrade function mediawiki_upgrade { OLD_VERSION="$1" VERSION="$2" if [ -z "$VERSION" ]; then echo "usage: $BASENAME upgrade " exit 1 fi # Deploy mediawiki_deploy $VERSION # Copy configuration $sudo cp -a mediawiki-$OLD_VERSION/LocalSettings.php mediawiki-$VERSION/ # Contrib extensions if [ -d "mediawiki-$OLD_VERSION/contrib" ]; then $sudo cp -a mediawiki-$OLD_VERSION/contrib mediawiki-$VERSION/ # Symlink extensions for extension in mediawiki-$OLD_VERSION/extensions/*; do if [ -h "mediawiki-$OLD_VERSION/extensions/$extension" ]; then $sudo cp mediawiki-$OLD_VERSION/extensions/$extension mediawiki-$VERSION/extensions/$extension fi done fi # Audit echo "Audit:" du -hs mediawiki-$OLD_VERSION du -hs mediawiki-$VERSION } # Main if [ -z "$1" ]; then echo "Usage: $BASENAME [arguments]" exit 1 elif [ "$1" == "deploy" ]; then shift mediawiki_deploy $* elif [ "$1" == "upgrade" ]; then shift mediawiki_upgrade $* else echo "No action $1" exit 1 fi