downloads/sbmigrate-site
... ...
@@ -0,0 +1,132 @@
1
+#!/usr/bin/env bash
2
+# $Id$
3
+
4
+USAGE="Usage : sbmigrate-site [ site name ]"
5
+
6
+
7
+PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
8
+INSTALLERCONFIG="$HOME/.sbgrid_installer"
9
+BACKUPCONFIG="$HOME/.sbgrid_installer_site_migrated"
10
+SITENAME_FILE="/programs/share/sitename"
11
+
12
+touch "/programs/share/site_migrate_check" 2>/dev/null
13
+if [ $? != 0 ]; then
14
+ echo "This user cannot write to /programs/share"
15
+ echo "Check that you have permission to write to this"
16
+ echo "SBGrid software installation. Migration cannot "
17
+ echo "continue without write access. "
18
+ exit 1
19
+else
20
+ echo "Write check passed."
21
+fi
22
+
23
+if [ ! -e $INSTALLERCONFIG ]; then
24
+ echo "No installation manager configuration found."
25
+ echo "Cannot continue migration. Exiting."
26
+ exit 1
27
+else
28
+ echo "$INSTALLERCONFIG config found."
29
+fi
30
+
31
+if [ -f $SITENAME_FILE ]; then
32
+ SITENAME=$(cat $SITENAME_FILE)
33
+ DATABASE="/programs/share/packages-${SITENAME}.db"
34
+ echo "sitename file found."
35
+else
36
+ echo "No site configuration found."
37
+ echo "Cannot continue migration. Exiting."
38
+ exit 1
39
+fi
40
+
41
+if [ ! -e "${DATABASE}" ]; then
42
+ echo "No software database found."
43
+ echo "Cannot continue migration. Exiting."
44
+ exit 1
45
+else
46
+ echo "database file found at: $DATABASE"
47
+fi
48
+
49
+echo "Required installation files found."
50
+echo "---------------------------------"
51
+echo
52
+
53
+if [ $1 ]; then
54
+ install_sitename=$1
55
+else
56
+ echo "This script will migration your the site configuration"
57
+ echo "for your SBGrid installation. You will be able to"
58
+ echo "confirm your settings before the migration happens. You"
59
+ echo "will need the new site name that was sent ny email."
60
+ echo "This process should be fast and will not impact running jobs."
61
+ echo
62
+ echo "Exit at any time with a CTRL-c."
63
+ echo
64
+ unset install_sitename
65
+ echo "Enter the SBGrid site name:"
66
+ read install_sitename
67
+fi
68
+
69
+echo "Does this site name look correct? Y/n"
70
+echo
71
+echo $install_sitename
72
+echo
73
+
74
+read confirmation
75
+if [ $confirmation == Y ]; then
76
+ echo "Great. Migrating installation."
77
+else
78
+ echo "No problem, we can start over. No files were changed."
79
+ exit 0
80
+fi
81
+
82
+# process old sbgrid_installer
83
+im_oldsite_name=$(grep 'site = ' $INSTALLERCONFIG | awk '{print $3}')
84
+if [ ! -e "$HOME/.sbgrid_old_sitename" ]; then
85
+ echo $im_oldsite_name >$HOME/.sbgrid_old_sitename
86
+fi
87
+
88
+# create new .sbgrid_installer file
89
+TMPCONFIG="${INSTALLERCONFIG}.tmp"
90
+if [ -e $TMPCONFIG ]; then
91
+ rm $TMPCONFIG
92
+fi
93
+
94
+if [ ! -e $BACKUPCONFIG ]; then
95
+ cp -av $INSTALLERCONFIG $BACKUPCONFIG
96
+else
97
+ echo "backup config found from previous migration"
98
+ echo "Will not overwrite $BACKUPCONFIG"
99
+fi
100
+
101
+cp -av $INSTALLERCONFIG $TMPCONFIG
102
+
103
+head -n 1 $TMPCONFIG >${INSTALLERCONFIG}
104
+echo "site = $install_sitename" >>${INSTALLERCONFIG}
105
+grep 'user = ' $TMPCONFIG >>${INSTALLERCONFIG}
106
+grep 'key = ' $TMPCONFIG >>${INSTALLERCONFIG}
107
+grep 'target = ' $TMPCONFIG >>${INSTALLERCONFIG}
108
+echo >>${INSTALLERCONFIG}
109
+
110
+echo "$install_sitename" >${SITENAME_FILE}
111
+NEWDATABASE="/programs/share/packages-${install_sitename}.db"
112
+
113
+if [ ! -e "$DATABASE.backup" ]; then
114
+ cp -av $DATABASE $DATABASE.backup
115
+else
116
+ echo "previously backed-up database exists"
117
+fi
118
+
119
+if [ -e $NEWDATABASE ]; then
120
+ echo "previously migrated database exists:"
121
+ echo "$NEWDATABASE"
122
+ echo will be overwritten.
123
+fi
124
+
125
+mv -f $DATABASE $NEWDATABASE
126
+if [ $? == 0 ]; then
127
+ echo "database move successful"
128
+ echo "Migration complete!."
129
+
130
+else
131
+ echo "error in database move"
132
+fi