1 |
71d02f8c
|
Julien Enselme
|
#!/usr/bin/env bash
|
2 |
|
|
|
3 |
|
|
help=<<EOF
|
4 |
|
|
This script is intended to ease the synchronisation between any site hosted by assos.
|
5 |
|
|
Typically, this script is usefull when you have (or want to have) a test site based on
|
6 |
|
|
a already working site. It relies on bash, drush and drush aliases.
|
7 |
|
|
|
8 |
|
|
Before synching the ssite, the destination site's database is backuped. If the
|
9 |
|
|
destination site does not exist, it is created.
|
10 |
|
|
|
11 |
c9d0efbc
|
Julien Enselme
|
usage: d7-sync.sh SOURCE_SITENAME DEST_SITENAME [--prod]
|
12 |
71d02f8c
|
Julien Enselme
|
EOF
|
13 |
|
|
|
14 |
06e9d071
|
Assos Assos
|
. /home/assos/bin/scripts-config.sh
|
15 |
|
|
. /home/assos/bin/scripts-utils.sh
|
16 |
71d02f8c
|
Julien Enselme
|
|
17 |
c5ae85b0
|
Julien Enselme
|
check_arguments $# 2 "$help"
|
18 |
|
|
|
19 |
42f1f46f
|
Julien Enselme
|
|
20 |
71d02f8c
|
Julien Enselme
|
# Create site if necessary
|
21 |
c5ae85b0
|
Julien Enselme
|
if ! site_exists $2 > /dev/null ; then
|
22 |
71d02f8c
|
Julien Enselme
|
echo "$2 does not exit. We will create it"
|
23 |
a3d7801f
|
Julien Enselme
|
d7-create-site.sh $2 --no-init-database
|
24 |
c9d0efbc
|
Julien Enselme
|
# if the site is new, there is no database
|
25 |
|
|
new_site=1
|
26 |
71d02f8c
|
Julien Enselme
|
fi
|
27 |
|
|
|
28 |
42f1f46f
|
Julien Enselme
|
|
29 |
71d02f8c
|
Julien Enselme
|
# Backup the database of SOURCE_SITE
|
30 |
|
|
current_date=$(date "+%Y-%m-%d-%Hh%Mm%Ss")
|
31 |
|
|
if [ $1 = "default" ] ; then
|
32 |
c9d0efbc
|
Julien Enselme
|
dir=$2
|
33 |
71d02f8c
|
Julien Enselme
|
else
|
34 |
c9d0efbc
|
Julien Enselme
|
dir=assos.centrale-marseille.fr.$2
|
35 |
|
|
fi
|
36 |
|
|
if [ -z "$new_site" ] ; then
|
37 |
98fad019
|
Julien Enselme
|
drush -y @$1 sql-dump --result-file=$d7_dir_individual_manual_backup/$dir/$current_date.$dir.sql --gzip
|
38 |
71d02f8c
|
Julien Enselme
|
fi
|
39 |
|
|
|
40 |
42f1f46f
|
Julien Enselme
|
|
41 |
71d02f8c
|
Julien Enselme
|
# Sync files
|
42 |
|
|
drush -y rsync --delete --exclude="*.php" @${1}:%site @${2}:%site
|
43 |
|
|
|
44 |
42f1f46f
|
Julien Enselme
|
|
45 |
71d02f8c
|
Julien Enselme
|
# Sync databases
|
46 |
|
|
## Save file system
|
47 |
c9d0efbc
|
Julien Enselme
|
if [ -z "$new_site" ] ; then
|
48 |
|
|
private_path=$(drush @$2 vget --format=string file_private_path 2> /dev/null)
|
49 |
|
|
public_path=$(drush @$2 vget --format=string file_public_path 2> /dev/null)
|
50 |
|
|
temp_path=$(drush @$2 vget --format=string file_temporary_path 2> /dev/null)
|
51 |
|
|
fi
|
52 |
42f1f46f
|
Julien Enselme
|
|
53 |
71d02f8c
|
Julien Enselme
|
## Sync
|
54 |
98fad019
|
Julien Enselme
|
current_date=$(date "+%Y-%m-%d-%Hh%Mm%Ss")
|
55 |
|
|
sql_file=$dir_tmp/$current_date.$1.sql
|
56 |
|
|
drush -y @$1 sql-dump --result-file=$sql_file
|
57 |
999bc9cc
|
Julien Enselme
|
sed -i -e "s#https?://assos.centrale-marseille.fr/$1#https://assos.centrale-marseille.fr/$2#g" $sql_file
|
58 |
f57004d8
|
Julien Enselme
|
sed -i -e "s#/$1/sites/assos.centrale-marseille.fr.$1#/$2/sites/assos.centrale-marseille.fr.$2#g" $sql_file
|
59 |
42f1f46f
|
Julien Enselme
|
mysql --defaults-extra-file=$myassos_cnf -e "DROP DATABASE IF EXISTS $2; CREATE DATABASE $2"
|
60 |
|
|
mysql --defaults-extra-file=$myassos_cnf $2 < $sql_file
|
61 |
999bc9cc
|
Julien Enselme
|
rm $sql_file
|
62 |
42f1f46f
|
Julien Enselme
|
|
63 |
71d02f8c
|
Julien Enselme
|
## Restore file system
|
64 |
c9d0efbc
|
Julien Enselme
|
if [ -n "$private_path" ] ; then
|
65 |
71d02f8c
|
Julien Enselme
|
drush -y @$2 vset file_private_path $private_path
|
66 |
|
|
fi
|
67 |
c9d0efbc
|
Julien Enselme
|
if [ -n "$public_path" ] ; then
|
68 |
71d02f8c
|
Julien Enselme
|
drush -y @$2 vset file_public_path $public_path
|
69 |
|
|
fi
|
70 |
c9d0efbc
|
Julien Enselme
|
if [ -n "$temp_path" ] ; then
|
71 |
71d02f8c
|
Julien Enselme
|
drush -y @$2 vset file_temporary_path $temp_path
|
72 |
|
|
fi
|
73 |
|
|
|
74 |
c9d0efbc
|
Julien Enselme
|
if [ "$3" = "--prod" ] ; then
|
75 |
|
|
drush -y @$2 vset maintenance_mode 0
|
76 |
|
|
else
|
77 |
|
|
drush -y @$2 vset maintenance_mode 1
|
78 |
|
|
fi |