cms/drupal/profiles/drustack/drustack.sh
changeset 541 e756a8c72c3d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/drupal/profiles/drustack/drustack.sh	Fri Sep 08 12:04:06 2017 +0200
@@ -0,0 +1,128 @@
+#!/bin/bash
+
+OPTIND=1
+TOP_DIR=$(pwd)
+
+# Define default options.
+PACKAGE="standard"
+ACTION="build"
+SOURCE="false"
+VERSION=""
+CONCURRENCY=8
+
+# Read command line options.
+while getopts ":h?fusv:c:" opt; do
+  case "$opt" in
+    h|\?)
+      echo "Usage: `basename $0` [-h] [-f] [-u] [-s] [-v version] [-c concurrency]"
+      exit 1
+      ;;
+    f)
+      PACKAGE="full"
+      ;;
+    u)
+      ACTION="upgrade"
+      ;;
+    s)
+      SOURCE=true
+      ;;
+    v)
+      VERSION="?h=$OPTARG"
+      ;;
+    c)
+      CONCURRENCY=$OPTARG
+      ;;
+  esac
+done
+
+# Global Settings
+# ===============
+
+MAKE_OPTIONS="--concurrency=$CONCURRENCY --contrib-destination=profiles/drustack --no-cache --force-complete"
+MAKE_FILE="http://cgit.drupalcode.org/drustack/plain/makes/$PACKAGE.make$VERSION"
+MAKE_PATH="."
+
+
+# Global Functions
+# ================
+
+function pre_build()
+{
+    if [[ $ACTION == 'build' ]]; then
+        MAKE_OPTIONS="$MAKE_OPTIONS --prepare-install"
+    fi
+}
+
+function pre_upgrade()
+{
+    if [[ $ACTION == 'upgrade' ]]; then
+        chmod a+w sites/*
+        rm -rf profiles/drustack
+    fi
+}
+
+function pre_source()
+{
+    if [[ "$SOURCE" == true ]]; then
+        MAKE_OPTIONS="$MAKE_OPTIONS --no-gitinfofile --working-copy"
+    fi
+}
+
+function post_upgrade()
+{
+    if [[ $ACTION == 'upgrade' ]]; then
+        chmod a-w sites/*
+    fi
+}
+
+function post_package()
+{
+    if [[ "$SOURCE" == false ]]; then
+        rm -rf profiles/drustack/.gitignore
+
+        find profiles/drustack/*/contrib/ -type f -name '*.info' |
+        xargs grep -l 'project = "drustack"' |
+        while read DATA; do
+            TMP=`mktemp`
+            head -n -6 $DATA > $TMP
+            mv $TMP $DATA
+        done
+    fi
+}
+
+function post_source()
+{
+    if [[ "$SOURCE" == true ]]; then
+        find $TOP_DIR -type d -name '.git' |
+        while read DATA; do
+            PROJECT=`echo $DATA | sed "s/^.*\/\([^\/]*\)\/\.git/\1/g"`
+            cd $DATA/../
+            git remote set-url --push origin `whoami`@git.drupal.org:project/$PROJECT.git
+            git fetch
+            git status
+            git remote -v
+        done
+    fi
+}
+
+
+# Install Packages
+# ================
+
+set -o xtrace
+
+cd $TOP_DIR
+
+pre_build
+pre_upgrade
+
+#pre_package
+pre_source
+
+drush -y make $MAKE_OPTIONS $MAKE_FILE $MAKE_PATH
+
+#post_build
+post_upgrade
+
+post_package
+post_source