#!/bin/bash # # Refresh an ikiwiki instance. # # Parameters NAME="$1" OWNER="$2" GROUP="$3" SITE="$BASE/$NAME" CONF="/etc/ikiwiki" INSTANCE="ikiwiki" WWW_USER="<%= scope.lookupvar('ikiwiki::www_user') %>" BASE="<%= scope.lookupvar('ikiwiki::sites_folder') %>" REPO_OWNER="<%= scope.lookupvar('ikiwiki::git_implementation') %>" REPO_GROUP="<%= scope.lookupvar('ikiwiki::git_implementation') %>" REPO="/var/git/repositories/$NAME.git" # 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 $OWNER $GROUP fi # Setup ikiwiki --setup /etc/ikiwiki/$NAME.setup # Fix permissions chown -R $REPO_OWNER. $REPO chown -R $OWNER.$GROUP $SITE/"$INSTANCE"_src $SITE/$INSTANCE chown $OWNER.$WWW_USER $SITE/$INSTANCE/ikiwiki.cgi chmod 6550 $SITE/$INSTANCE/ikiwiki.cgi chown $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