Merge branch 'angular-tests' of https://github.com/giant-rabbit/civicrm-core into...
[civicrm-core.git] / bin / gitify
index 3b9d4535ab2775660b74b6401533705ba3550b31..9b8a8893084a7101f6086289ab43b98828907d7d 100755 (executable)
@@ -73,22 +73,31 @@ function git_set_remote() {
 }
 
 ###########################################
-## usage: do_svnify <repo-url> <existing-dir>
-function do_svnify() {
-  REPO="$1"
-  TGT="$2"
-  shift 2
-
-  if [ -d "$TGT/.svn" ]; then
-    echo "[[Already checked out SVN repo ($TGT) -- skip $REPO]]"
+## usage: do_targzify <targz-url> <file-name> <existing-dir>
+## Fetches a tar.gz archive and unpacks it in the current directory
+function do_targzify() {
+  TARGZURL="$1"
+  TARFILE="$2"
+  TGT="$3"
+  shift 3
+
+  if [ -d "$TGT" ]; then
+    echo "[[Already have a copy of the archive ($TGT) -- skip $TARGZURL]]"
     return
   fi
-  [ -d $TGT ] || mkdir -p "$TGT"
-  [ -d $TMP ] && rm -rf "$TMP"
-  echo "[[Checkout $REPO ($TMP)]]"
 
-  echo "[svn co \"$REPO\" \"$TGT\"]"
-  svn co "$REPO" "$TGT"
+  TMP=`mktemp -d`
+
+  echo "[[Downloading $TARGZURL ($TMP)]]"
+  echo "[wget \"$TARGZURL\" -O \"$TMP/$TARFILE\"]"
+
+  pushd "$CIVICRM_ROOT" > /dev/null
+  wget -q "$TARGZURL" -O "$TMP/$TARFILE"
+  tar zxfv "$TMP/$TARFILE"
+  popd
+
+  rm "$TMP/$TARFILE"
+  rmdir "$TMP"
 }
 
 ###########################################
@@ -141,6 +150,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
@@ -153,6 +163,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"
@@ -168,19 +183,22 @@ 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"
   echo "  --upstream <base-url>: specify the base URL for upstream repositories"
   echo "  --fork <base-url>: specify the base URL for your personal fork repositories"
-  echo "  --l10n: optionally fetch localization data; currently requires svn"
+  echo "  --l10n: optionally fetch localization data"
   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/svn. If you've made changes, then make sure there's a backup!"
+  echo "the pristine code from git. If you've made changes, then make sure there's a backup!"
   echo ""
   echo "example: $0 Drupal /var/www/drupal7/sites/all/modules/civicrm"
   echo "  (checkout core code plus Drupal 7.x integration code)"
@@ -223,7 +241,9 @@ case "$CIVICRM_CMS" in
 esac
 
 if [ "$CIVICRM_L10N" == "--l10n" ]; then
-  do_svnify "http://svn.civicrm.org/l10n/trunk" "$CIVICRM_ROOT/l10n"
+  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 [ -z "$SKIP_GENCODE" ]; then
+  do_gencode "$CIVICRM_ROOT"
+fi