-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·131 lines (110 loc) · 4.79 KB
/
setup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash
# for symlinking source repositories into drupal
function link {
local link_type=$1
local link_path=$2
for link in /source/$link_type/*; do
NAME=`basename $link`
if [[ -d $link ]]; then
ln -s $link $link_path/$NAME
fi
done
}
function setup_islandora {
local site_name=$1
local site_path=$2
local site_initialize=$3
cd $site_path
echo "Setting up Islandora for $site_name"
if [[ "$site_name" == "Islandora" ]]; then
drush -y site-install standard --site-name=$site_name --account-mail=$ISLANDORA_EMAIL --account-pass=$ISLANDORA_PASSWORD
else
drush -y site-install --site-name=$site_name --account-mail=$ISLANDORA_EMAIL --account-pass=$ISLANDORA_PASSWORD
fi
drush -y vset site_frontpage islandora/object/islandora:root
drush -y vset islandora_base_url http://$BACKEND_PORT_8080_TCP_ADDR:8080/fedora
drush -y vset islandora_solr_url http://$BACKEND_PORT_8080_TCP_ADDR:8080/solr
drush -y vset islandora_paged_content_djatoka_url http://$DJATOKA_PORT_8888_TCP_ADDR:8888
drush -y vset islandora_fits_executable_path $FITS_PATH/fits.sh
# install the modules
while IFS=, read MODULE
do
if [[ "$MODULE" == "" || "$MODULE" =~ ^#.*$ ]]; then
continue
fi
drush -y -u 1 en $MODULE
done < "/modules_install_order.csv"
drush -y role-add-perm 'anonymous user' 'view fedora repository objects'
cd
}
# for additional (not default) sites, in synced source/sites directory
# install the site if it matches $DRUPAL_SITE
function setup_sites {
echo "<?php" >> $DRUPAL_SITES_PATH/sites.php
for site in /source/sites/*; do
NAME=`basename $site`
if [[ -d $site ]]; then
mkdir $DRUPAL_SITES_PATH/$NAME
mkdir $DRUPAL_SITES_PATH/$NAME/files
chmod -R a+w $DRUPAL_SITES_PATH/$NAME/files
cp $DRUPAL_DEFAULT_PATH/settings.php $DRUPAL_SITES_PATH/$NAME
ln -s $site/modules $DRUPAL_SITES_PATH/$NAME/modules
ln -s $site/themes $DRUPAL_SITES_PATH/$NAME/themes
if [[ "$NAME" == "$DRUPAL_SITE" ]]; then
echo "\$sites['localhost'] = '$NAME';" >> $DRUPAL_SITES_PATH/sites.php
echo "\$sites['dev.islandora.org'] = '$NAME';" >> $DRUPAL_SITES_PATH/sites.php
# site specific features / themes etc.
FEATURE=$DRUPAL_SITES_PATH/$NAME/modules/*
FEATURE_NAME=`basename $FEATURE`
THEME=$DRUPAL_SITES_PATH/$NAME/themes/*
THEME_NAME=`basename $THEME`
cd $DRUPAL_SITES_PATH/$NAME
drush -y -u 1 en $FEATURE_NAME
drush -y -u 1 en $THEME_NAME
cd
fi
fi
done
}
DRUPAL_PATH=/var/www/drupal
DRUPAL_SOURCE_PATH=/source/base/drupal
DRUPAL_DEFAULT_PATH=$DRUPAL_PATH/sites/default
DRUPAL_LIBRARIES_PATH=$DRUPAL_PATH/sites/all/libraries
DRUPAL_MODULES_PATH=$DRUPAL_PATH/sites/all/modules/islandora
DRUPAL_SITES_PATH=$DRUPAL_PATH/sites
DRUPAL_THEMES_PATH=$DRUPAL_PATH/sites/all/themes
# drupal is slightly special in this arrangement: copy it out of the source directory because we don't want "synced" symlinks
# changes to drupal source will require a re-run to be seen in the container -- probably not a great need for that
rm -rf $DRUPAL_PATH
rm -rf $DRUPAL_SITES_PATH/sites.php
cp -r $DRUPAL_SOURCE_PATH $DRUPAL_PATH
mkdir $DRUPAL_DEFAULT_PATH/files
chmod -R a+w $DRUPAL_DEFAULT_PATH/files
# SETUP DATABASE
mysql --host=$DB_PORT_3306_TCP_ADDR --port=3306 --user=$ADMIN --password=$ADMIN_PASSWORD -e "CREATE DATABASE $DRUPAL_DB default character set utf8;"
mysql --host=$DB_PORT_3306_TCP_ADDR --port=3306 --user=$ADMIN --password=$ADMIN_PASSWORD -e "grant all on $DRUPAL_DB.* to '$DRUPAL_USER'@'%' identified by '$DRUPAL_PASSWORD';"
cp /settings.php $DRUPAL_DEFAULT_PATH/settings.php
mkdir -p $DRUPAL_MODULES_PATH
mkdir -p $DRUPAL_LIBRARIES_PATH
sed -i "s/!MYSQL_HOST!/$DB_PORT_3306_TCP_ADDR/g" $DRUPAL_DEFAULT_PATH/settings.php
sed -i "s/!DRUPAL_DB!/$DRUPAL_DB/g" $DRUPAL_DEFAULT_PATH/settings.php
sed -i "s/!DRUPAL_USER!/$DRUPAL_USER/g" $DRUPAL_DEFAULT_PATH/settings.php
sed -i "s/!DRUPAL_PASSWORD!/$DRUPAL_PASSWORD/g" $DRUPAL_DEFAULT_PATH/settings.php
sed -i "s/!DJATOKA_HOST!/$DJATOKA_PORT_8888_TCP_ADDR/g" /etc/apache2/sites-available/islandora # may not need
# PHP CONFIG
sed -i "s/max_execution_time = 30/max_execution_time = 120/g" /etc/php5/apache2/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 24M/g" /etc/php5/apache2/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 28M/g" /etc/php5/apache2/php.ini
# LINK THEMES, MODULES, LIBRARIES
link "libraries" $DRUPAL_LIBRARIES_PATH
link "modules" $DRUPAL_MODULES_PATH
link "themes" $DRUPAL_THEMES_PATH
ln -s $OPENSEADRAGON_PATH $DRUPAL_LIBRARIES_PATH/openseadragon
ln -s $VIDEOJS_PATH $DRUPAL_LIBRARIES_PATH/video.js
if [[ "default" == "$DRUPAL_SITE" ]]; then
setup_islandora "Islandora" $DRUPAL_DEFAULT_PATH
else
setup_islandora "Islandora" $DRUPAL_DEFAULT_PATH
setup_sites
fi
exec supervisord -n