diff options
author | drebs <drebs@riseup.net> | 2010-01-26 11:03:59 -0200 |
---|---|---|
committer | drebs <drebs@riseup.net> | 2010-01-26 11:03:59 -0200 |
commit | 047f247fc9683adee57ee3aefdfdc472d9131b46 (patch) | |
tree | 66bc48595914583ab080fc949e3e8fe7e9b10286 /templates | |
download | puppet-pmwiki-047f247fc9683adee57ee3aefdfdc472d9131b46.tar.gz puppet-pmwiki-047f247fc9683adee57ee3aefdfdc472d9131b46.tar.bz2 |
Initial commit.
Diffstat (limited to 'templates')
-rw-r--r-- | templates/pmwiki.sh.erb | 94 |
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 |