]> gitweb.fluxo.info Git - puppet-drupal.git/commitdiff
Adding drupal install
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 30 Sep 2011 17:23:41 +0000 (14:23 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 30 Sep 2011 17:23:41 +0000 (14:23 -0300)
manifests/init.pp
templates/drupal.sh.erb

index 176b352971ef8a99262a604fd4e9a2c80e6491a1..aa5578d8b34d71c2b0498d77b615c33c42acd1c3 100644 (file)
@@ -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,
index afc3ed18f399f1381f431acdf309cd5062476747..bb65c5cbc3f2e54e5f64f849faa27324da75b5f0 100644 (file)
@@ -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