#!/bin/bash # # Refresh an ikiwiki instance. # # Parameters NAME="$1" WEB_OWNER="$2" WEB_GROUP="$3" WWW_USER="<%= scope.lookupvar('ikiwiki::www_user') %>" BASE="<%= scope.lookupvar('ikiwiki::sites_folder') %>" SITE="$BASE/$NAME" CONF="/etc/ikiwiki" INSTANCE="ikiwiki" REPO_OWNER="<%= scope.lookupvar('ikiwiki::git_implementation') %>" REPO_GROUP="<%= scope.lookupvar('ikiwiki::git_implementation') %>" # Syntax check if [ -z "$INSTANCE" ]; then echo "Usage:`basename $0` " exit 1 elif [ ! -e "$CONF/$NAME.setup" ]; then echo "No config file for $NAME" exit 1 fi # Deploy if needed if [ ! -d "$REPO" ]; then ikiwiki-deploy $NAME $WEB_OWNER $WEB_GROUP fi # Setup ikiwiki --setup /etc/ikiwiki/$NAME.setup # Fix permissions chown -R $REPO_OWNER. $REPO chown -R $WEB_OWNER.$WEB_GROUP $SITE/"$INSTANCE"_src $SITE/$INSTANCE chown $WEB_OWNER.$WWW_USER $SITE/$INSTANCE/ikiwiki.cgi chmod 6550 $SITE/$INSTANCE/ikiwiki.cgi chown $WEB_OWNER.$REPO $REPO/hooks/post-update chmod 6550 $REPO/hooks/post-update # Setuid/setgid chmod 0755 $REPO/hooks/post-update chmod 0550 $SITE/$INSTANCE/ikiwiki.cgi