Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:fschuett
oss-moodle
oss-moodle.post
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File oss-moodle.post of Package oss-moodle
#!/bin/bash # # post script for oss-moodle # fschuett 20161103 # # setup rights if [ ! -d /home/sysadmins/administrator ] then exit 0; fi # read open school server defaults if [ -e /etc/sysconfig/cranix ]; then . /etc/sysconfig/cranix fi # read basedn CRANIX_BASEDN="$(ldbsearch -H /var/lib/samba/private/sam.ldb objectclass=domain distinguishedName | grep ^distinguishedName: |head -n 1| sed 's/distinguishedName: //')" # read package defaults . /usr/share/oss-moodle/config/dist.conf # read moodle defaults . /etc/sysconfig/oss-moodle # set sane default if [ ! -n "${MOODLE_EXT_ADDRESS}" ]; then MOODLE_EXT_ADDRESS=moodle.${CRANIX_DOMAIN} fi ossmoodleconf=$MOODLESYSCONFDIR/config.php patchFile(){ file=$1 [ "$file" == "" ] && return; sed \ -e "s/#MOODLE_EXT_ADDRESS#/$MOODLE_EXT_ADDRESS/g;" \ -e "s/#CRANIX_DOMAIN#/$CRANIX_DOMAIN/g;" \ -e "s/#CRANIX_BASEDN#/$CRANIX_BASEDN/g;" \ -e "s/#CRANIX_NAME#/$CRANIX_NAME/g;" \ -e "s/#CRANIX_COUNTRY#/$CRANIX_COUNTRY/g;" \ -e "s/#CRANIX_CCODE#/$CRANIX_CCODE/g;" \ -e "s/#CRANIX_CITY#/$CRANIX_CITY/g;" \ -e "s/#CRANIX_NETBIOSNAME#/$CRANIX_NETBIOSNAME/g;" \ -e "s/#CRANIX_SERVER#/$CRANIX_SERVER/g;" \ -e "s/#CRANIX_PROXY#/$CRANIX_PROXY/g" \ -i $file } if [ ! -e /etc/oss-moodle/config.php ] then cp /etc/oss-moodle/config.php.in /etc/oss-moodle/config.php patchFile /etc/oss-moodle/config.php fi # set absolute path for db_replace utility echo "Setting absolute path for config.php into db_replace.php." sed -e "/^[[:space:]]*[^#]*config.php/s#\$CFG->dirroot#\'$MOODLEDIR\'#" -i $MOODLEDIR/admin/cli/db_replace.php # Care about the repository - disabled because of file cache destroyed in Hamburg #if [ -d $MOODLEFILEDIR ]; then # # set the owner and change rights accordingly # chown -R wwwrun:www $MOODLEFILEDIR # chmod 0755 $MOODLEFILEDIR #fi service apache2 restart # moodle user and db existing ? MOODLEUSER="$(echo "SELECT 1 FROM mysql.user WHERE User='moodle' and Host='localhost';"|mysql -N)" if [ "$MOODLEUSER" == "" ]; then # create random password [ -n "$randompw" ] || randompw=`pwgen -s 8 1` # patch dbpass & admin login sed -e "s/\$CFG->dbpass =.*/\$CFG->dbpass = \'$randompw\';/" -i $ossmoodleconf # create new user echo "CREATE USER 'moodle'@'localhost' IDENTIFIED BY '$randompw';"|mysql -N unset randompw fi MOODLEDB="$(echo "SHOW DATABASES;"|mysql -N |grep ^moodle$)" if [ "$MOODLEDB" == "" ]; then echo "CREATE DATABASE 'moodle' CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"|mysql -N echo "GRANT ALL PRIVILEGES ON moodle.* TO 'moodle'@'localhost';"|mysql -N echo "FLUSH PRIVILEGES;"|mysql -N fi # create upload virus quarantine dir [ -d $r${MOODLEFILEDIR}/quarantine ] || mkdir -p $r${MOODLEFILEDIR}/quarantine chown wwwrun:www $r${MOODLEFILEDIR}/quarantine # wwwroot tweak [ -L $r${MOODLEDIR}/moodle ] || ln -s . $r${MOODLEDIR}/moodle # secure permissions of config.php chown root:www $ossmoodleconf chmod 440 $ossmoodleconf # check config.php link if [ ! -L $r${MOODLEDIR}/config.php ]; then [ -e $r${MOODLEDIR}/config.php ] && rm -rf $r${MOODLEDIR}/config.php pushd $r ln -s ${MOODLESYSCONFDIR}/config.php ${MOODLEDIR}/config.php popd fi # read password for updates dbpass="$(cat $ossmoodleconf|sed -n "s/\$CFG->dbpass = '\(.*\)';.*/\1/p")" if [ "$MOODLEDB" == "" ]; then # create random password randomadminpw=`pwgen -s 8 1` echo wwwadmin:${randomadminpw} >$r/etc/oss-moodle.secrets chmod 600 $r/etc/oss-moodle.secrets chown root.root $r/etc/oss-moodle.secrets sudo -u wwwrun /usr/bin/php $r${MOODLEDIR}/admin/cli/install_database.php \ --lang=$(echo ${CRANIX_CCODE}|tr '[:upper:]' '[:lower:]') \ --adminuser=wwwadmin --adminpass=${randomadminpw} --agree-license --fullname="${CRANIX_NAME}" \ --shortname="${CRANIX_NETBIOSNAME}" # unset random admin password unset randomadminpw cp $r/usr/share/oss-moodle/moodle_install.sql.in $r/usr/share/oss-moodle/moodle_install.sql patchFile $r/usr/share/oss-moodle/moodle_install.sql mysql --default-character-set=utf8-u moodle --password=$dbpass moodle <$r/usr/share/oss-moodle/moodle_install.sql fi # put into maintenance mode sudo -u wwwrun /usr/bin/php $r${MOODLEDIR}/admin/cli/maintenance.php --enable # upgrade database sudo -u wwwrun /usr/bin/php $r${MOODLEDIR}/admin/cli/upgrade.php --non-interactive # update settings cp $r/usr/share/oss-moodle/moodle_update.sql.in $r/usr/share/oss-moodle/moodle_update.sql patchFile $r/usr/share/oss-moodle/moodle_update.sql mysql --default-character-set=utf8 -u moodle --password=$dbpass moodle <$r/usr/share/oss-moodle/moodle_update.sql # unset dbpass unset dbpass # update school ext name if [ -n "$MOODLE_EXT_ADDRESS" -a -n "$MOODLE_EXT_ADDRESS_OLD" -a "$MOODLE_EXT_ADDRESS" != "$MOODLE_EXT_ADDRESS_OLD" ]; then echo -n "Replacing $MOODLE_EXT_ADDRESS_OLD with $MOODLE_EXT_ADDRESS in moodle db..." /usr/bin/sudo -u wwwrun /usr/bin/php $r${MOODLEDIR}/admin/cli/db_replace.php --search="$MOODLE_EXT_ADDRESS_OLD" --replace="$MOODLE_EXT_ADDRESS" 2>&1 >/dev/null echo "finished." fi # leave maintenance mode sudo -u wwwrun /usr/bin/php $r${MOODLEDIR}/admin/cli/maintenance.php --disable
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor