Projet

Général

Profil

Paste
Télécharger (1,88 ko) Statistiques
| Branche: | Révision:

root / bin / d7-sync-site.sh @ 06e9d071

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 71d02f8c Julien Enselme
# Create site if necessary
20 c5ae85b0 Julien Enselme
if ! site_exists $2 > /dev/null ; then
21 71d02f8c Julien Enselme
    echo "$2 does not exit. We will create it"
22 a3d7801f Julien Enselme
    d7-create-site.sh $2 --no-init-database
23 c9d0efbc Julien Enselme
    # if the site is new, there is no database
24
    new_site=1
25 71d02f8c Julien Enselme
fi
26
27
# Backup the database of SOURCE_SITE
28
current_date=$(date "+%Y-%m-%d-%Hh%Mm%Ss")
29
if [ $1 = "default" ] ; then
30 c9d0efbc Julien Enselme
    dir=$2
31 71d02f8c Julien Enselme
else
32 c9d0efbc Julien Enselme
    dir=assos.centrale-marseille.fr.$2
33
fi
34
if [ -z "$new_site" ] ; then
35
    drush -y @$1 sql-dump | gzip  > $d7_dir_individual_manual_backup/$dir/$current_date.$dir.sql.gz
36 71d02f8c Julien Enselme
fi
37
38
# Sync files
39
drush -y rsync --delete --exclude="*.php" @${1}:%site @${2}:%site
40
41
# Sync databases
42
## Save file system
43 c9d0efbc Julien Enselme
if [ -z "$new_site" ] ; then
44
    private_path=$(drush @$2 vget --format=string file_private_path 2> /dev/null)
45
    public_path=$(drush @$2 vget --format=string file_public_path 2> /dev/null)
46
    temp_path=$(drush @$2 vget --format=string file_temporary_path 2> /dev/null)
47
fi
48 71d02f8c Julien Enselme
## Sync
49 c9d0efbc Julien Enselme
drush -y sql-sync @$1 @$2
50 71d02f8c Julien Enselme
## Restore file system
51 c9d0efbc Julien Enselme
if [ -n "$private_path" ] ; then
52 71d02f8c Julien Enselme
    drush -y @$2 vset file_private_path $private_path
53
fi
54 c9d0efbc Julien Enselme
if [ -n "$public_path" ] ; then
55 71d02f8c Julien Enselme
    drush -y @$2 vset file_public_path $public_path
56
fi
57 c9d0efbc Julien Enselme
if [ -n "$temp_path" ] ; then
58 71d02f8c Julien Enselme
    drush -y @$2 vset file_temporary_path $temp_path
59
fi
60
61 c9d0efbc Julien Enselme
if [ "$3" = "--prod" ] ; then
62
    drush -y @$2 vset maintenance_mode 0
63
else
64
    drush -y @$2 vset maintenance_mode 1
65
fi