aboutsummaryrefslogtreecommitdiff
path: root/templates/pmwiki.sh.erb
diff options
context:
space:
mode:
Diffstat (limited to 'templates/pmwiki.sh.erb')
-rw-r--r--templates/pmwiki.sh.erb94
1 files changed, 94 insertions, 0 deletions
diff --git a/templates/pmwiki.sh.erb b/templates/pmwiki.sh.erb
new file mode 100644
index 0000000..c9298ca
--- /dev/null
+++ b/templates/pmwiki.sh.erb
@@ -0,0 +1,94 @@
+#!/bin/bash
+#
+# pmwiki management script.
+#
+
+BASE="<%= apache_www_folder %>"
+
+# Check for existing installations
+function pmwiki_check_existing {
+ if [ -e "$BASE/pmwiki-$1" ]; then
+ echo "Folder $BASE/pmwiki-$1 already exist, skipping"
+ exit 1
+ fi
+}
+
+# Deploy a fresh pmwiki tree
+function pmwiki_deploy {
+ if [ "$#" != "1" ]; then
+ echo "Usage: `basename $0` deploy <version>"
+ exit 1
+ fi
+
+ # Setup
+ new="$1"
+ cd $BASE
+ pmwiki_check_existing $new
+
+ # Deploy a fresh pmwiki tree
+ wget http://pmwiki.org/pub/pmwiki/pmwiki-$new.tgz
+ wget http://pmwiki.org/pub/pmwiki/i18n/i18n-all.zip
+ tar zxvf pmwiki-$new.tgz && rm pmwiki-$new.tgz
+ ( cd pmwiki-$new && unzip ../i18n-all.zip && rm $_ )
+ chown -R root.root pmwiki-$new/
+}
+
+# Upgrade a pmwiki instance using upstream source.
+function pmwiki_upgrade {
+ if [ "$#" != "2" ]; then
+ echo "Usage: `basename $0` upgrade <old_version> <new_version>"
+ exit 1
+ fi
+
+ # Setup
+ old="$1"
+ new="$2"
+ extra_folders=""
+
+ pmwiki_check_existing $new
+
+ cd $BASE
+ cp -a pmwiki-$old pmwiki-$old.backup
+
+ # Deploy a fresh pmwiki tree
+ pmwiki_deploy $new
+
+ # Copy files
+ for file in .htaccess index.php farmconfig.php local config.php; do
+ if [ -f "pmwiki-$old/$file" ]; then
+ cp pmwiki-$old/$file pmwiki-$new/
+ fi
+ if [ -f "pmwiki-$old/local/$file" ]; then
+ cp pmwiki-$old/local/$file pmwiki-$new/local/
+ fi
+ done
+ for extra_folder in $extra_folders; do
+ if [ -d ../pmwiki-$old/$extra_folder ]; then
+ cp -Rp ../pmwiki-$old/$extra_folder .
+ fi
+ done
+
+ # Themes and cookbook
+ rsync -av pmwiki-$old/cookbook/ pmwiki-$new/cookbook
+ rsync -av --exclude=pmwiki --exclude=print pmwiki-$old/pub/skins/ pmwiki-$new/pub/skins/
+
+ # Change symlink to point to the new location
+ cd $BASE ; rm -f wiki && ln -s pmwiki-$new wiki
+
+ # Done
+ echo "Audit: `du -hs pmwiki-$old`"
+ echo "Audit: `du -hs pmwiki-$new`"
+ echo "Check procedure and remove pmwiki-$old once you make sure that everything is fine."
+}
+
+# Main procedure
+if [ -z "$1" ]; then
+ echo "Usage: `basename $0` <deploy|update|upgrade> [arguments]"
+ exit 1
+elif [ "$1" == "deploy" ]; then
+ shift
+ pmwiki_deploy $*
+elif [ "$1" == "upgrade" ]; then
+ shift
+ pmwiki_upgrade $*
+fi