Révision 3e9236bd
Ajouté par Julien Enselme il y a plus de 9 ans
bin/d7-create-site.sh | ||
---|---|---|
1 | 1 |
#!/bin/sh |
2 | 2 |
|
3 | 3 |
. /home/assos/bin/scripts-config.sh |
4 |
. /home/assos/bin/scripts-config-site.sh $1
|
|
4 |
. /home/assos/bin/scripts-config-site.sh "$1"
|
|
5 | 5 |
. /home/assos/bin/scripts-utils.sh |
6 | 6 |
|
7 | 7 |
help="# ARGS: site_name site_mail admin_password [--no-init-database]" |
8 | 8 |
|
9 |
check_arguments $# 3 "$help"
|
|
9 |
check_arguments "$#" 3 "${help}"
|
|
10 | 10 |
|
11 | 11 |
# Check if site already exists. |
12 |
if site_exists $d7_site_name ; then
|
|
12 |
if site_exists "${d7_site_name}" ; then
|
|
13 | 13 |
exit 1 |
14 | 14 |
fi |
15 | 15 |
|
... | ... | |
26 | 26 |
fi |
27 | 27 |
|
28 | 28 |
# "-" is forbidden because it provokes database error. |
29 |
if [ $(echo $1 | grep -) ] ; then
|
|
29 |
if [ "$(echo "$1" | grep -)" ] ; then
|
|
30 | 30 |
echo '"-" is forbidden in the site name' |
31 | 31 |
exit 1 |
32 | 32 |
fi |
33 | 33 |
|
34 | 34 |
# Site name length must be lower or equal to 16 due to database limitations. |
35 |
if [ $(echo $1 | wc -c) -gt 16 ] ; then
|
|
35 |
if [ "$(echo "$1" | wc -c)" -gt 16 ] ; then
|
|
36 | 36 |
echo "site name can't have more than 16 characters" |
37 | 37 |
exit 1 |
38 | 38 |
fi |
39 | 39 |
|
40 | 40 |
# drush site-install needs the translation file |
41 |
if [ ! -f $translation_fr ] ; then
|
|
41 |
if [ ! -f "${translation_fr}" ] ; then
|
|
42 | 42 |
echo "The translation file $translation_fr does not exist" |
43 | 43 |
exit 1 |
44 | 44 |
fi |
45 | 45 |
|
46 | 46 |
###### Initialisation |
47 |
cd $d7_dir
|
|
48 |
site_password=$(generate_password)
|
|
47 |
cd "${d7_dir}"
|
|
48 |
site_password="$(generate_password)"
|
|
49 | 49 |
site_line_sites_php="\$sites['assos.centrale-marseille.fr.$d7_site_name'] = 'assos.centrale-marseille.fr.$d7_site_name';" |
50 | 50 |
site_line_aliases_drushrc_php="\$aliases['$d7_site_name'] = array('uri' => 'assos.centrale-marseille.fr/$d7_site_name', 'root' => '/home/assos/drupal7/', );" |
51 | 51 |
# NB: site_name is initialised in script-config-site.sh |
52 |
site_mail=$2
|
|
53 |
admin_password=$3
|
|
52 |
site_mail="$2"
|
|
53 |
admin_password="$3"
|
|
54 | 54 |
|
55 | 55 |
|
56 | 56 |
###### Main |
57 |
mkdir $d7_site_dir
|
|
58 |
dir_site_name="assos.centrale-marseille.fr.$d7_site_name"
|
|
57 |
mkdir "${d7_site_dir}"
|
|
58 |
dir_site_name="assos.centrale-marseille.fr.${d7_site_name}"
|
|
59 | 59 |
|
60 | 60 |
# Backup requirements |
61 |
mkdir $d7_dir_individual_auto_backup/$dir_site_name
|
|
62 |
mkdir $d7_dir_individual_manual_backup/$dir_site_name
|
|
63 |
current_date=$(date "+%Y-%m-%d-%Hh%Mm%Ss")
|
|
61 |
mkdir "${d7_dir_individual_auto_backup}/${dir_site_name}"
|
|
62 |
mkdir "${d7_dir_individual_manual_backup}/${dir_site_name}"
|
|
63 |
current_date="$(date "+%Y-%m-%d-%Hh%Mm%Ss")"
|
|
64 | 64 |
|
65 | 65 |
# NB : ls sort by considering the 1st characters |
66 |
touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql
|
|
67 |
touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql2
|
|
68 |
touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql3
|
|
69 |
touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql4
|
|
66 |
touch "${d7_dir_individual_auto_backup}/${dir_site_name}/${current_date}.${dir_site_name}.sql"
|
|
67 |
touch "${d7_dir_individual_auto_backup}/${dir_site_name}/${current_date}.${dir_site_name}.sql2"
|
|
68 |
touch "${d7_dir_individual_auto_backup}/${dir_site_name}/${current_date}.${dir_site_name}.sql3"
|
|
69 |
touch "${d7_dir_individual_auto_backup}/${dir_site_name}/${current_date}.${dir_site_name}.sql4}"
|
|
70 | 70 |
|
71 | 71 |
# Create and grant privileges on database |
72 |
mysql --defaults-extra-file=$myassos_cnf -e "CREATE DATABASE $d7_site_name"
|
|
73 |
mysql --defaults-extra-file=$myassos_cnf -e "GRANT ALL PRIVILEGES ON $d7_site_name.* TO '$d7_site_name'@'%' IDENTIFIED BY '$site_password'"
|
|
72 |
mysql --defaults-extra-file="${myassos_cnf}" -e "CREATE DATABASE ${d7_site_name}"
|
|
73 |
mysql --defaults-extra-file="${myassos_cnf}" -e "GRANT ALL PRIVILEGES ON ${d7_site_name}.* TO '${d7_site_name}'@'%' IDENTIFIED BY '${site_password}'"
|
|
74 | 74 |
|
75 | 75 |
# Create settings.local.php |
76 |
cp $d7_settings $d7_site_settings
|
|
77 |
generate_settings_local $d7_site_name $site_password $d7_settings_local_template $d7_site_settings_local
|
|
76 |
cp "${d7_settings}" "${d7_site_settings}"
|
|
77 |
generate_settings_local "${d7_site_name}" "${site_password}" "${d7_settings_local_template}" "${d7_site_settings_local}"
|
|
78 | 78 |
|
79 | 79 |
# Install the site |
80 |
drush site-install -y standard --account-mail=$site_mail --account-name="admin" --account-pass=$admin_password --locale=fr --site-mail=$site_mail --site-name=$d7_site_name --sites-subdir=$dir_site_name
|
|
80 |
drush site-install -y standard --account-mail="${site_mail}" --account-name="admin" --account-pass="${admin_password}" --locale=fr --site-mail="${site_mail}" --site-name="${d7_site_name}" --sites-subdir="${dir_site_name}"
|
|
81 | 81 |
|
82 | 82 |
# Create symbolic link |
83 |
cd $d7_dir
|
|
84 |
ln -s . $d7_site_name
|
|
85 |
git add $d7_site_name
|
|
83 |
cd "${d7_dir}"
|
|
84 |
ln -s . "${d7_site_name}"
|
|
85 |
git add "${d7_site_name}"
|
|
86 | 86 |
|
87 | 87 |
# Update sites.php |
88 |
chmod +w $sites_php
|
|
89 |
echo $site_line_sites_php >> $sites_php
|
|
90 |
chmod 400 $sites_php
|
|
88 |
chmod +w "${sites_php}"
|
|
89 |
echo "${site_line_sites_php}" >> "${sites_php}"
|
|
90 |
chmod 400 "${sites_php}"
|
|
91 | 91 |
|
92 | 92 |
### Update aliases.drushrc.php |
93 | 93 |
# For site |
94 |
echo $site_line_aliases_drushrc_php >> $aliases_drushrc_php
|
|
94 |
echo "${site_line_aliases_drushrc_php}" >> "${aliases_drushrc_php}"
|
|
95 | 95 |
# @d7 |
96 |
sed s/"'site-list' => array("/"'site-list' => array(%'assos.centrale-marseille.fr\/$d7_site_name',"/ < $aliases_drushrc_php | tr '%' '\n ' > $dir_tmp/aliases.tmp
|
|
97 |
mv $dir_tmp/aliases.tmp $aliases_drushrc_php
|
|
96 |
sed s/"'site-list' => array("/"'site-list' => array(%'assos.centrale-marseille.fr\/$d7_site_name',"/ < "${aliases_drushrc_php}" | tr '%' '\n ' > "${dir_tmp}/aliases.tmp"
|
|
97 |
mv "${dir_tmp}/aliases.tmp" "${aliases_drushrc_php}"
|
|
98 | 98 |
|
99 |
commit "Creation of site: $d7_site_name"
|
|
99 |
commit "Creation of site: ${d7_site_name}"
|
|
100 | 100 |
|
101 | 101 |
# Next Instructions |
102 |
if [ $init_db -eq 0 ] ; then
|
|
102 |
if [ "${init_db}" -eq 0 ] ; then
|
|
103 | 103 |
exit 0 |
104 | 104 |
fi |
105 | 105 |
|
106 | 106 |
# Init variables |
107 |
d7-reset-variables.sh $d7_site_name
|
|
107 |
d7-reset-variables.sh "${d7_site_name}"
|
|
108 | 108 |
|
109 | 109 |
# Permissions |
110 |
chmod -R 755 $d7_site_dir
|
|
111 |
chmod 400 $d7_site_settings
|
|
110 |
chmod -R 755 "${d7_site_dir}"
|
|
111 |
chmod 400 "${d7_site_settings}"
|
|
112 | 112 |
|
113 | 113 |
# Last instructions |
114 | 114 |
echo "Last instructions:" |
Formats disponibles : Unified diff
Update scritp so they respect the new convention.