#!/bin/bash # # moodle This shell script is modified from sysVinit init.d moodle # --checks for moodle upgrade flag and enables the cron # job for Moodle # # Author: Ignacio Vazquez-Abrams # Adapted from the yum initscript by Seth Vidal # Adapted for systemd by George Hunt # # description: Enable the Moodle cron job # # source function library . /etc/rc.d/init.d/functions # both moodle cron and config.php check # for this file - lockfile=/var/lock/subsys/moodle RETVAL=0 start() { if [ -e /etc/moodle/needsupgrade ]; then echo "Moodle installation or upgrade required..." pushd /var/www/moodle/web echo "["`date`"]" Start install / upgrade >> /var/log/moodle-instupg.log # Correct a bungled 'version' variable in mdl_config. If version matches local_version, and # is one of the known-to-be-bungled local_version/version pairs, fix it to the last-known-good # value. echo "Correcting version/local_version mangling - will error out on fresh DBs" >> /var/log/moodle-instupg.log (su -c "psql -c \"UPDATE mdl_config SET value='2007101526' WHERE id=(SELECT v.id FROM mdl_config v JOIN mdl_config lv ON (v.name='version' AND lv.name='local_version' AND v.value=lv.value) WHERE lv.value IN ('2009030301', '2009042801', '2009051800', '2009052500'));\" moodle-xs " postgres 2>&1 ) >> /var/log/moodle-instupg.log # Before install/upgrade, enable the admin user # (will DTRT for upgrades, fail silently in fresh installs) ( runuser -s /bin/bash -c "/usr/bin/php /var/www/moodle/web/local/scripts/adminuser-enable.php" apache 2>&1 ) >> /var/log/moodle-instupg.log # Install/upgrade moodle DB schema ( runuser -s /bin/bash -c "/usr/bin/php /var/www/moodle/web/admin/cliupgrade.php \ --agreelicense=yes --confirmrelease=yes \ --sitefullname='School Server' \ --siteshortname='XS' \ --sitesummary='Put the name of your school here' \ --adminfirstname=Admin --adminlastname=OLPC \ --adminusername=admin --adminpassword=changeme \ --adminemail=admin@localhost \ --verbose=0 --interactivelevel=0" apache 2>&1 ) #&& \ # runuser -s /bin/bash -c "/usr/bin/php /var/www/moodle/web/local/scripts/adminuser-disable.php" apache 2>&1 ) \ # >> /var/log/moodle-instupg.log if [ $? = 0 ]; then # success echo "["`date`"]" Finished install / upgrade - Success >> /var/log/moodle-instupg.log rm -f /etc/moodle/needsupgrade else # failure echo "["`date`"]" Finished install / upgrade - Failure >> /var/log/moodle-instupg.log exit 1 fi popd fi echo -n $"Enabling Moodle access and cron job: " touch "$lockfile" && success || failure RETVAL=$? echo } stop() { echo -n $"Disabling Moodle access and cron job: " rm -f "$lockfile" && success || failure RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; *) exit 1 esac exit $RETVAL