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"
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
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
;;
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)
DO_SCHEMA=1
DO_DATA=1
DO_FLUSH=1
+ DEFAULT_DATA=civicrm_generated.mysql
fi
shift $((OPTIND-1))
fi
BOWER=$(pickcmd node_modules/bower/bin/bower bower)
- $BOWER install
+ if [ -f "$BOWER" ]; then
+ NODE=$(pickcmd node nodejs)
+ BOWER="$NODE $BOWER"
+ fi
+ # Without the force flag, bower may not check for new versions or verify that installed software matches version specified in bower.json
+ # With the force flag, bower will ignore all caches and download all deps.
+ if [ -n "$OFFLINE" ]; then
+ BOWER_OPT=
+ elif [ ! -f "bower_components/.setupsh.ts" ]; then
+ ## First run -- or cleanup from failed run
+ BOWER_OPT=-f
+ elif [ "bower.json" -nt "bower_components/.setupsh.ts" ]; then
+ ## Bower.json has changed since last run
+ BOWER_OPT=-f
+ fi
+ [ -f "bower_components/.setupsh.ts" ] && rm -f "bower_components/.setupsh.ts"
+ $BOWER install $BOWER_OPT
+ touch bower_components/.setupsh.ts
popd
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
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';"