blob: 05ab92838758e9bdd4f40c20871b76857aa5eca8 (
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
#!/bin/bash
#
# wordpress management script.
#
BASE="<%= wordpress_folder %>"
LOCALE="<%= real_wordpress_locale %>"
# Set alternative base
function wordpress_set_base {
if [ ! -z "$1" ]; then
BASE="$1"
if [ ! -d "$BASE" ]; then
echo "No such folder $BASE"
exit 1
fi
fi
}
# Check for existing installations
function wordpress_check_existing {
if [ -e "$BASE/wordpress-$1" ]; then
echo "Folder $BASE/wordpress-$1 already exists, skipping."
exit 1
fi
}
# Deploy a fresh wordpress tree
function wordpress_deploy {
if [ -z "$1" ]; then
echo "Usage: `basename $0` deploy <version> [folder]"
exit 1
fi
# Setup
new="$1"
wordpress_set_base $2
wordpress_check_existing $new
# Deploy a fresh wordpress tree
cd $BASE
wget http://br.wordpress.org/wordpress-$new$LOCALE.zip
unzip wordpress-$new$LOCALE.zip && rm wordpress-$new$LOCALE.zip
mv wordpress wordpress-$new/
chown -R root.root wordpress-$new/
}
# Upgrade a wordpress instance using upstream source.
function wordpress_upgrade {
if [ -z "2" ]; then
echo "Usage: `basename $0` upgrade <old_version> <new_version> [folder]"
exit 1
fi
# Setup
old="$1"
new="$2"
extra_folders=""
wordpress_set_base $3
wordpress_check_existing $new
cd $BASE
if [ ! -d "wordpress-$old" ]; then
echo "Installation not found: wordpress-$old"
exit
fi
cp -a wordpress-$old wordpress-$old.backup
# Deploy a fresh wordpress tree
wordpress_deploy $new
# Copy files
for file in .htaccess wp-config.php; do
if [ -e "wordpress-$old/$file" ]; then
cp -a wordpress-$old/$file wordpress-$new/
fi
done
# Extra folders
for extra_folder in $extra_folders; do
if [ -d ../wordpress-$old/$extra_folder ]; then
cp -Rp ../wordpress-$old/$extra_folder .
fi
done
# Files
rsync -av wordpress-$old/wp-content/uploads/ wordpress-$new/wp-content/uploads/
rsync -av wordpress-$old/wp-content/blogs.dir/ wordpress-$new/wp-content/blogs.dir/
# Plugins
for plugin in `ls wordpress-$old/wp-content/plugins/`; do
if [ ! -e "wordpress-$new/wp-content/plugins/$plugin" ]; then
cp -r wordpress-$old/wp-content/plugins/$plugin wordpress-$new/wp-content/plugins/
fi
done
# Themes
for theme in `ls wordpress-$old/wp-content/themes/`; do
if [ ! -e "wordpress-$new/wp-content/themes/$theme" ]; then
cp -r wordpress-$old/wp-content/themes/$theme wordpress-$new/wp-content/themes/
fi
done
# Fix permissions
chown -R root.root wordpress-$new/wp-content/{plugins,themes}
# Set sunrise symlink
if [ -f "wordpress-$new/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php" ]; then
( cd wordpress-$new/wp-content && ln -s plugins/wordpress-mu-domain-mapping/sunrise.php )
fi
# Change symlink to point to the new location
if [ -h "site" ]; then
link="`readlink site`"
if [ "`basename $link`" == "wordpress-$old" ]; then
rm site && ln -s wordpress-$new site
fi
fi
# Done
echo "Audit: `du -hs wordpress-$old`"
echo "Audit: `du -hs wordpress-$new`"
echo "Check procedure and remove wordpress-$old once you make sure that everything is fine."
}
# Main procedure
if [ -z "$1" ]; then
echo "Usage: `basename $0` <deploy|upgrade> [arguments]"
exit 1
elif [ "$1" == "deploy" ]; then
shift
wordpress_deploy $*
elif [ "$1" == "upgrade" ]; then
shift
wordpress_upgrade $*
fi
|