Dedupe permissions - allow safe mode merging based on 'merge duplicate contacts'
[civicrm-core.git] / bin / setup.sh
index 5261c2ee39ba299fedf1860cfe39ebb67252e40b..2badb46673d68eafbc7d647b88bf289a0f51e82c 100755 (executable)
@@ -23,12 +23,13 @@ if [ "$1" = '-h' ] || [ "$1" = '--help' ]; then
   echo
   echo "Usage: setup.sh [options] [schema file] [database data file] [database name] [database user] [database password] [database host] [database port] [additional args]"
   echo "[options] is a mix of zero or more of following:"
-  echo "  -a     (All)       Implies -Dgsdf (default)"
-  echo "  -D     (Download)  Download depdencies"
-  echo "  -g     (GenCode)   Generate DAO files, SQL files, etc"
-  echo "  -s     (Schema)    Load new schema in DB"
-  echo "  -d     (Data)      Load default data in DB"
-  echo "  -f     (Flush)     Flush caches and settings"
+  echo "  -a     (All)            Implies -Dgsef (default)"
+  echo "  -D     (Download)       Download dependencies"
+  echo "  -g     (GenCode)        Generate DAO files, SQL files, etc"
+  echo "  -s     (Schema)         Load new schema in DB"
+  echo "  -d     (Data-Plain)     Load basic dataset in DB"
+  echo "  -e     (Data-Examples)  Load example dataset in DB"
+  echo "  -f     (Flush)          Flush caches and settings"
   echo
   echo "Example: Perform a full setup"
   echo "   setup.sh -a"
@@ -37,7 +38,7 @@ if [ "$1" = '-h' ] || [ "$1" = '--help' ]; then
   echo "   setup.sh -Dg"
   echo
   echo "Example: Keep the existing code but reset the DB"
-  echo "   setup.sh -sdf"
+  echo "   setup.sh -sef"
   exit 0
 fi
 
@@ -50,14 +51,16 @@ DO_GENCODE=
 DO_SCHEMA=
 DO_DATA=
 DO_FLUSH=
+DEFAULT_DATA=
 
-while getopts "aDgsdf" opt; do
+while getopts "aDgsdef" opt; do
   case $opt in
     a)
       DO_DOWNLOAD=1
       DO_GENCODE=1
       DO_SCHEMA=1
       DO_DATA=1
+      DEFAULT_DATA=civicrm_generated.mysql
       DO_FLUSH=1
       FOUND_ACTION=1
       ;;
@@ -75,6 +78,12 @@ while getopts "aDgsdf" opt; do
       ;;
     d)
       DO_DATA=1
+      DEFAULT_DATA=civicrm_data.mysql
+      FOUND_ACTION=1
+      ;;
+    e)
+      DO_DATA=1
+      DEFAULT_DATA=civicrm_generated.mysql
       FOUND_ACTION=1
       ;;
     f)
@@ -97,6 +106,7 @@ if [ -z "$FOUND_ACTION" ]; then
   DO_SCHEMA=1
   DO_DATA=1
   DO_FLUSH=1
+  DEFAULT_DATA=civicrm_generated.mysql
 fi
 
 shift $((OPTIND-1))
@@ -134,15 +144,12 @@ if [ -n "$DO_DOWNLOAD" ]; then
     COMPOSER=$(pickcmd composer composer.phar)
     $COMPOSER install
 
-    if has_commands bower karma ; then
+    if has_commands karma ; then
       ## dev dependencies have been installed globally; don't force developer to redownload
       npm install --production
     else
       npm install
     fi
-
-    BOWER=$(pickcmd node_modules/bower/bin/bower bower)
-    $BOWER install
   popd
 fi
 
@@ -180,10 +187,11 @@ fi
 
 if [ -n "$DO_DATA" ]; then
   pushd "$CALLEDPATH/../sql"
-    # load civicrm_generated.mysql sample data unless special DBLOAD is passed
+    # load default data set unless system is configured with override
     if [ -z $DBLOAD ]; then
-        echo; echo Populating database with example data - civicrm_generated.mysql
-        $MYSQLCMD < civicrm_generated.mysql
+        echo;
+        echo "Populating database with dataset - $DEFAULT_DATA"
+        $MYSQLCMD < "$DEFAULT_DATA"
     else
         echo; echo Populating database with required data - civicrm_data.mysql
         $MYSQLCMD < civicrm_data.mysql
@@ -201,9 +209,6 @@ fi
 
 if [ -n "$DO_FLUSH" ]; then
   pushd "$CALLEDPATH/.."
-    # run the cli script to build the menu and the triggers
-    "$PHP5PATH"php bin/cli.php -e System -a flush --triggers 1 --session 1
-
     # reset config_backend and userFrameworkResourceURL which gets set
     # when config object is initialized
     $MYSQLCMD -e "UPDATE civicrm_domain SET config_backend = NULL; UPDATE civicrm_setting SET value = NULL WHERE name = 'userFrameworkResourceURL';"