aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-09-30 14:23:41 -0300
committerSilvio Rhatto <rhatto@riseup.net>2011-09-30 14:23:41 -0300
commit1ced786ff499f44a610924ceb209f6991bbffa14 (patch)
tree47fe12a8d9215cdf0b4952148f5d2a790f01981b
parent2b240fa55869f35b80b30dd73400d11893f4b5df (diff)
downloadpuppet-drupal-1ced786ff499f44a610924ceb209f6991bbffa14.tar.gz
puppet-drupal-1ced786ff499f44a610924ceb209f6991bbffa14.tar.bz2
Adding drupal install
-rw-r--r--manifests/init.pp4
-rw-r--r--templates/drupal.sh.erb57
2 files changed, 61 insertions, 0 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 176b352..aa5578d 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -4,6 +4,10 @@ class drupal inherits pear {
'': { fail("you need to define \$apache_www_folder for drupal module") }
}
+ case $apache_sites_folder {
+ '': { fail("you need to define \$apache_sites_folder for drupal module") }
+ }
+
# We use drupal source from upstream
package { "drupal6":
ensure => absent,
diff --git a/templates/drupal.sh.erb b/templates/drupal.sh.erb
index afc3ed1..bb65c5c 100644
--- a/templates/drupal.sh.erb
+++ b/templates/drupal.sh.erb
@@ -3,6 +3,7 @@
# Drupal management script.
#
+SITES="<%= apache_sites_folder %>"
BASE="<%= apache_www_folder %>"
SERIES="5 6 7"
@@ -206,6 +207,59 @@ function drupal_video_scheduler {
fi
}
+# Install a new instance
+function drupal_install {
+ if [ -z "$2" ]; then
+ echo "Usage: `basename $0` install <series> <name> [aliases]"
+ exit 1
+ elif [ -e "$BASE/drupal-$series/sites/$site" ]; then
+ echo "Drupal $site already installed at $BASE/drupal-$series"
+ exit 1
+ fi
+
+ # Required arguments
+ series="$1"
+ site="$2"
+ shift 2
+
+ # Site aliases
+ aliases="$*"
+
+ # Check installation
+ if [ ! -e "$BASE/drupal-$series" ]; then
+ echo "Please deploy your drupal $series farm first"
+ exit 1
+ fi
+
+ echo "Creating $SITES/$site/drupal/ structure..."
+ mkdir -p $SITES/$site/drupal/files
+
+ # Set files folder permission
+ if grep -qe "^$site:" /etc/passwd; then
+ chown $site.$site $SITES/$site/drupal/files
+ else
+ chown www-data.www-data $SITES/$site/drupal/files
+ fi
+
+ echo "Copying default configuration file..."
+ cp $BASE/drupal-$series/sites/default/default.settings.php $SITES/$site/drupal/settings.php
+ chown root.root $SITES/$site/drupal/settings.php
+ chmod 640 $SITES/$site/drupal/settings.php
+
+ (
+ echo "Creating symlinks..."
+ cd $BASE/drupal-$series/sites
+ ln -s $SITES/$site/drupal $site
+ ln -s $SITES/$site/drupal $site.`facter domain`
+
+ for alias in $aliases; do
+ ln -s $SITES/$site/drupal $alias
+ done
+ )
+
+ echo "Done. Now please edit settings.php, change it's permission an run drush site-install"
+}
+
# Main procedure
if [ -z "$1" ]; then
echo "Usage: `basename $0` <cron|deploy|update|updatedb|upgrade|run|make|video-scheduler> [arguments]"
@@ -237,6 +291,9 @@ elif [ "$1" == "make" ]; then
elif [ "$1" == "video-scheduler" ]; then
shift
drupal_video_scheduler $*
+elif [ "$1" == "install" ]; then
+ shift
+ drupal_install $*
else
echo "No action $1"
exit 1