Group :: Networking/Other
RPM: moin
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
#!/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" <<@@@
<VirtualHost *:80>
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
<Directory "$DESTDIR/cgi-bin/">
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "$HTDOCS/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
@@@
a2ensite vhosts
a2ensite $PFX$SITE
a2enmod rewrite
a2enmod cgi
service httpd2 restart