8f77388a26ee0a6be98742b4c43bfb201ee0f0b0
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 |