#!/bin/sh Die () { # [Message [Error_code]] test "${2:-2}" -lt 1 || echo -n "$Usage ERROR: " >&2 test -z "$1" || echo "${1:-UNKNOWN}" >&2 test "${2:-2}" -lt 0 || exit "${2:-2}" } SHARE=/usr/share/moin # path of MoinMoin shared files HTDOCS=@HTDOCS@ # path of MoinMoin htdocs files WIKIS=/var/www/wiki # path of wikis tree ACFG=/etc/httpd2/conf # apache config directory SITES="$ACFG/sites-available" # apache vhosts available LOGS= PFX="moin-" # VHOST prefix USER=apache2; GROUP=apache2 # UID and GID PKG=moin VERSION="$(rpmquery --qf "%{VERSION}" $PKG | tr -d .)" test -n "$1" || { # list wikis # TODO more echo "Wiki sites configured:" ls "$SITES/$PFX"*.conf 2>/dev/null | sed 's@.*/\(.*\).conf@\t\1@' echo echo "To create new wiki use $0 sitename [alias [alias ...]]" exit 0 } SITE="$1"; INSTANCE="${SITE%%.*}" CONF="$SITES/$PFX$SITE.conf" DESTDIR="$WIKIS/$INSTANCE" shift test -f "$CONF" && { # print instance info # TODO much more echo echo "=== $SITE exists:" echo cat "$CONF" echo echo "=== $DESTDIR exists:" ls "$DESTDIR" exit 0 } || test -d "$DESTDIR" && { # namespace clash echo "$DESTDIR already exists, check $SITES" exit 1 } || : mkdir -p $DESTDIR/cgi-bin $DESTDIR/static cp -R $SHARE/data $DESTDIR cp -R $SHARE/underlay $DESTDIR cp $SHARE/server/moin.cgi $DESTDIR/cgi-bin/ cp $SHARE/server/moinmodpy.py $DESTDIR/cgi-bin/ sed " s@instance_dir = wikiconfig_dir@instance_dir = os.path.realpath(os.path.join(wikiconfig_dir, '..'))@ " $SHARE/config/wikiconfig.py > $DESTDIR/cgi-bin/wikiconfig.py chown -R $USER:$GROUP $DESTDIR chmod -R ug+rwX $DESTDIR chmod -R o-rwx $DESTDIR cat > "$CONF" <<@@@ ServerName $SITE `for N; do echo ServerAlias $N; done` RewriteEngine On RewriteLog /etc/httpd2/logs/rewrite_log RewriteRule ^/moin_static$VERSION/(.*)\$ $HTDOCS/\$1 [last] RewriteRule ^/static/(.*)\$ $DESTDIR/static/\$1 [last] ScriptAliasMatch ^(.*)$ $DESTDIR/cgi-bin/moin.cgi\$1 Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all @@@ a2ensite vhosts a2ensite $PFX$SITE a2enmod rewrite a2enmod cgi service httpd2 restart