77 lines
2.6 KiB
Bash
Executable File
77 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Create a bunch of folders under the clean /var that php and nginx expect to exist
|
|
mkdir -p /var/lib/nginx
|
|
mkdir -p /var/lib/php/sessions
|
|
mkdir -p /var/log
|
|
mkdir -p /var/log/nginx
|
|
mkdir -p /var/www
|
|
# Wipe /var/run, since pidfiles and socket files from previous launches should go away
|
|
# TODO someday: I'd prefer a tmpfs for these.
|
|
rm -rf /var/run
|
|
mkdir -p /var/run
|
|
|
|
# Spawn php
|
|
/usr/sbin/php-fpm7.0 -R --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf &
|
|
# Wait until php have bound its socket, indicating readiness
|
|
while [ ! -e /var/run/php-fpm7.0.sock ] ; do
|
|
echo "waiting for php-fpm7.0 to be available at /var/run/php-fpm7.0.sock"
|
|
sleep .2
|
|
done
|
|
|
|
mkdir -p /var/lib/dokuwiki/lib/plugins/sandstorm
|
|
|
|
if [ ! -e /var/lib/dokuwiki/conf/local.php ]; then
|
|
echo Adding new configuration.
|
|
rsync -a /opt/app/dokuwiki/conf.orig/ /var/lib/dokuwiki/conf
|
|
cp /opt/app/local.php /var/lib/dokuwiki/conf
|
|
fi
|
|
rm -f /var/lib/dokuwiki/conf/conf
|
|
|
|
if [ ! -e /var/lib/dokuwiki/data ]; then
|
|
echo Adding data.
|
|
rsync -a /opt/app/dokuwiki/data.orig/ /var/lib/dokuwiki/data
|
|
fi
|
|
rm -f /var/lib/dokuwiki/data/data
|
|
|
|
rsync -a /opt/app/dokuwiki/lib/plugins.orig/ /var/lib/dokuwiki/lib/plugins
|
|
rm -f /var/lib/dokuwiki/lib/plugins/plugins
|
|
rsync -a /opt/app/plugin/ /var/lib/dokuwiki/lib/plugins/sandstorm
|
|
|
|
if [ ! -e /var/lib/dokuwiki/lib/tpl ]; then
|
|
echo Adding templates.
|
|
rsync -a /opt/app/dokuwiki/lib/tpl.orig/ /var/lib/dokuwiki/lib/tpl
|
|
fi
|
|
rm -f /var/lib/dokuwiki/lib/tpl/tpl
|
|
|
|
cd /var/lib/dokuwiki
|
|
grep -Ev '^($|#)' /opt/app/dokuwiki/data.orig/deleted.files | xargs -n 1 rm -vrf
|
|
|
|
cp /opt/app/acl.auth.php /var/lib/dokuwiki/conf
|
|
|
|
function cleanup()
|
|
{
|
|
local data_path="$1" # full path to data directory of wiki
|
|
local retention_days="$2" # number of days after which old files are to be removed
|
|
|
|
# purge files older than ${retention_days} days from attic and media_attic (old revisions)
|
|
find "${data_path}"/{media_,}attic/ -type f -mtime +${retention_days} -delete
|
|
|
|
# remove stale lock files (files which are 1-2 days old)
|
|
find "${data_path}"/locks/ -name '*.lock' -type f -mtime +1 -delete
|
|
|
|
# remove empty directories
|
|
find "${data_path}"/{attic,cache,index,locks,media,media_attic,media_meta,meta,pages,tmp}/ \
|
|
-mindepth 1 -type d -empty -delete
|
|
|
|
# remove files older than ${retention_days} days from the cache
|
|
if [ ! -z "$(ls -A $data_path/cache)" ]; then
|
|
find "${data_path}"/cache/?/ -type f -mtime +${retention_days} -delete
|
|
fi
|
|
}
|
|
|
|
cleanup /var/lib/dokuwiki/data 30
|
|
|
|
# Start nginx.
|
|
/usr/sbin/nginx -c /opt/app/.sandstorm/service-config/nginx.conf -g "daemon off;"
|