CCRM-15821 Provide option to notify PCP owner
[civicrm-core.git] / bin / gitify
index 90c4b6018e58803c48afd7a0fc97329d019bd436..dc2b93dbb92f590ccf9c2a4ff535b03d347c3771 100755 (executable)
@@ -113,6 +113,35 @@ function do_gencode() {
   popd > /dev/null
 }
 
+## usage: do_setupconf <civicrm-path>
+function do_setupconf() {
+  pushd "$1" >> /dev/null
+    echo "[[Initialize bin/setup.conf]]"
+    if [ ! -f "bin/setup.conf" ]; then
+      pwd
+      echo       cp "bin/setup.conf.txt" "bin/setup.conf"
+      cp "bin/setup.conf.txt" "bin/setup.conf"
+    fi
+    echo "[[chmod 600 bin/setup.conf]]"
+    chmod 600 bin/setup.conf
+    echo ""
+    echo "====================[ Next steps (for Civi v4.6+) ]===================="
+    echo "  * Edit the following file and fill in credentials for the CiviCRM DB."
+    echo "    $1/bin/setup.conf"
+    echo "  * Perform one of these steps:"
+    echo "    + Run 'bin/setup.sh -Dg' to download and generate missing code."
+    echo "    + Run 'bin/setup.sh' to download code and reset the CiviCRM DB"
+    echo "      with the latest schema."
+    echo "  * If this is a network-accessible server (eg staging/production), then"
+    echo "    setup.conf may present a security issue. The permissions have been"
+    echo "    preset to restrict access in most servers - but this may not work"
+    echo "    in all environments. Please:"
+    echo "    + Check whether the file is web-accessible."
+    echo "    + Optionally, change the permissions."
+    echo "    + Optionally, delete the file."
+  popd > /dev/null
+}
+
 ###########################################
 ## config_repo <repo-name> <local-path> <default-branch> <git-scripts-path>
 ##                  1            2              3               4
@@ -150,6 +179,7 @@ CIVICRM_GIT_HOOKS=""
 CIVICRM_BRANCH="master"
 FORK_GIT_BASE_URL=""
 UPSTREAM_GIT_BASE_URL="https://github.com/civicrm"
+SKIP_GENCODE=
 
 while [ -n "$1" ]; do
   if [ "$1" == "--l10n" ]; then
@@ -162,6 +192,11 @@ while [ -n "$1" ]; do
   elif [ "$1" == "--fork" ]; then
     shift
     FORK_GIT_BASE_URL="$1"
+  elif [ "$1" == "--skip-gencode" ]; then
+    SKIP_GENCODE=1
+  elif [ "$1" == "--branch" ]; then
+    shift
+    CIVICRM_BRANCH="$1"
   elif [ -z "$CIVICRM_CMS" ]; then
     ## First arg
     CIVICRM_CMS="$1"
@@ -177,7 +212,7 @@ done
 
 if [ -z "$CIVICRM_ROOT" -o ! -d "$CIVICRM_ROOT" -o -z "$UPSTREAM_GIT_BASE_URL" -o -z "$CIVICRM_CMS" ]; then
   echo "Convert a directory into a set of CiviCRM git clones"
-  echo "usage: $0 <Drupal|Drupal6|Joomla|WordPress|all> <existing-civicrm-root> [--fork <base-url>] [--upstream <base-url>] [--l10n] [--hooks]"
+  echo "usage: $0 <Drupal|Drupal6|Joomla|WordPress|all> <existing-civicrm-root> [--fork <base-url>] [--upstream <base-url>] [--l10n] [--hooks] [--branch <branch>]"
   echo "  <cms-name>: one of: Drupal|Drupal6|Joomla|WordPress|all"
   echo "  <git-base-url>: a base URL shared by the desiried git repos (e.g. git://github.com/civicrm)"
   echo "  <existing-civicrm-root>: the main directory containing CiviCRM"
@@ -187,6 +222,9 @@ if [ -z "$CIVICRM_ROOT" -o ! -d "$CIVICRM_ROOT" -o -z "$UPSTREAM_GIT_BASE_URL" -
   echo "  --hooks: optionally install recommended git hooks; the hooks are mostly"
   echo "           tested with git CLI under Linux and OSX; they haven't been"
   echo "           tested with git GUIs or Windows"
+  echo "  --branch <branch>: specy the base branch name to checkout (ex: 'master', '4.4')"
+  echo "           For some repos, this name is adapted (ex: Drupal's '7.x-master' or '6.x-master'"
+  echo "  --skip-gencode: optionally disable gencode execution"
   echo ""
   echo "Note: If pointing to a pre-existing directory, your local changes may be replaced by"
   echo "the pristine code from git. If you've made changes, then make sure there's a backup!"
@@ -227,6 +265,8 @@ case "$CIVICRM_CMS" in
     config_repo civicrm-joomla     "$CIVICRM_ROOT/joomla"     "$CIVICRM_BRANCH"      "../../tools/scripts/git"
     config_repo civicrm-wordpress  "$CIVICRM_ROOT/WordPress"  "$CIVICRM_BRANCH"      "../../tools/scripts/git"
     ;;
+  none)
+    ;;
   *)
     echo "Unrecognized CMS: $CIVICRM_CMS"
 esac
@@ -235,4 +275,9 @@ if [ "$CIVICRM_L10N" == "--l10n" ]; then
   do_targzify "https://download.civicrm.org/civicrm-l10n-core/archives/civicrm-l10n-daily.tar.gz" "civicrm-l10n-daily.tar.gz" "$CIVICRM_ROOT/l10n"
 fi
 
-do_gencode "$CIVICRM_ROOT"
+if [ -f "$CIVICRM_ROOT/composer.json" ]; then
+  ## Civi v4.6+
+  do_setupconf "$CIVICRM_ROOT"
+elif [ -z "$SKIP_GENCODE" ]; then
+  do_gencode "$CIVICRM_ROOT"
+fi