github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/repository/charms/mediawiki/hooks/config-changed (about) 1 #!/bin/sh 2 set -eux 3 4 status-set maintenance "Configuring Mediawiki" 5 6 wikiname=`config-get name` 7 skin=`config-get skin` 8 logo=`config-get logo` 9 admins=`config-get admins` 10 server_address=`config-get server_address` 11 12 if [ "`config-get --format json use_suffix`" = "true" ] ; then 13 # Change root from /usr/share/mediawiki /to var/www 14 imagepath="/var/www/images" 15 scriptpath="/mediawiki" 16 else 17 # Change root from /var/www to /usr/share/mediawiki 18 imagepath="/usr/share/mediawiki/images" 19 scriptpath="" 20 fi 21 22 if [ -n "$logo" ] ; then 23 wgLogo=$( 24 dldir=`mktemp -d logodir.XXXXXXXX` 25 cd $dldir 26 if wget $logo ; then 27 file=`ls` 28 mkdir -p $imagepath 29 mv $file $imagepath 30 chmod a+rx $imagepath 31 chgrp www-data $imagepath/$file 32 chmod g+r $imagepath/$file 33 34 echo "/images/$file" 35 fi 36 cd / 37 rm -rf $dldir 38 ) 39 fi 40 41 new_file=`mktemp /etc/mediawiki/config-settings.XXXXXXXXX.php` 42 43 if [ -n "$logo" ] ; then 44 wgLogo="'$wgLogo'" 45 else 46 wgLogo="null" 47 fi 48 49 cat > $new_file <<EOF 50 <?php 51 \$wgSitename="${wikiname}"; 52 \$wgDefaultSkin="${skin}"; 53 \$wgScriptPath="${scriptpath}"; 54 \$wgLogo=$wgLogo; 55 EOF 56 57 if [ -n "$server_address" ] ; then 58 echo "\$wgServer=\"${server_address}\";" >> $new_file 59 fi 60 61 if [ "`config-get --format json debug`" = "true" ] ; then 62 cat >> $new_file <<EOF 63 \$wgDebugLogFile = "$CHARM_DIR/debug.log"; 64 \$wgDebugComments = true; 65 \$wgShowExceptionDetails = true; 66 \$wgShowSQLErrors = true; 67 \$wgDebugDumpSql = true; 68 \$wgShowDBErrorBacktrace = true; 69 EOF 70 fi 71 72 chmod 0640 $new_file 73 chgrp www-data $new_file 74 75 cfile=/etc/mediawiki/config-settings.php 76 [ ! -f $cfile ] || mv -f $cfile $cfile.old 77 mv $new_file $cfile 78 [ ! -f $cfile.old ] || rm $cfile.old 79 80 cd /usr/share/mediawiki/maintenance 81 82 #added to prevent failure when no db relationship exists 83 if [ -f /etc/mediawiki/LocalSettings.php ]; then 84 for admin in $admins ; do 85 user=`echo $admin | cut -d: -f1` 86 pass=`echo $admin | cut -d: -f2` 87 # createAndPromote.php will exit non-zero if the user already exists. 88 # Since this hook is set -e, it would exit immediately unless we used 89 # ' || true' at the end. This lets us properly inform the user of the 90 # error, versus having a failed config-changed hook with no message. 91 user_count=`php createAndPromote.php --conf /etc/mediawiki/LocalSettings.php $user $pass 2>&1 | grep -c "account exists" || true` 92 if [ $user_count -gt 0 ] ; then 93 echo "ERROR: $user account already exists" 94 exit 1 95 fi 96 done 97 fi 98 99 # Make sure any use_suffix changes are applied 100 service apache2 reload 101 102 application-version-set $(dpkg -s mediawiki | grep '^Version:' | awk -F':' '{print $3}' | cut -d+ -f1) 103 104 if [ -f "${CHARM_DIR}/db-connected" ]; then 105 status-set active "Ready" 106 else 107 status-set blocked "Database required" 108 fi 109 110 $CHARM_DIR/hooks/start