#!/bin/bash # # Deploy an ikiwiki instance. # # Parameters NAME="$1" OWNER="$2" GROUP="$3" INSTANCE="ikiwiki" CONF="/etc/ikiwiki" BASE="<%= scope.lookupvar('ikiwiki::sites_folder') %>" REPO_OWNER="<%= scope.lookupvar('ikiwiki::git_implementation') %>" REPO="<%= scope.lookupvar('ikiwiki::git_folder') %>/$NAME.git" REMOTE="$REPO_OWNER@localhost:$NAME" SITE=$BASE/$NAME CWD="`pwd`" # 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 # Repository setup if [ ! -d "$REPO" ]; then # Setup source folder mkdir -p $SITE/"$INSTANCE"_src_tmp/ rm -rf $SITE/"$INSTANCE"_src # Create initial page echo "Welcome to your new wiki powered by [ikiwiki](http://ikiwiki.info)." > $SITE/"$INSTANCE"_src_tmp/index.mdwn # Create ikiwiki repository ikiwiki-makerepo git $SITE/"$INSTANCE"_src_tmp $REPO fi # Clone it again if [ ! -d "$SITE"/"$INSTANCE"_src ]; then git clone $REPO $SITE/"$INSTANCE"_src # Fix remotes cd $SITE/"$INSTANCE"_src git remote rm origin git remote add origin $REMOTE git config branch.master.remote origin git config branch.master.merge refs/heads/master cd $CWD fi # Cleanup rm -rf $SITE/"$INSTANCE"_src_tmp