blob: c9298cae55bc1c03d90bc98917fe2bfe6cc53dfb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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
|