#!/bin/bash WD=$(dirname "$0") # We are in Contents/MacOS. However everything is located under Contents/Resources ROOTDIR=$(cd "$WD" && cd "../Resources" && pwd) # create start script ARANGOD_CONF_DIR="${HOME}@INC_CPACK_INSTALL_SYSCONFDIR@/" ARANGOD_CONF="${ARANGOD_CONF_DIR}/arangod.conf" mkdir -p "${HOME}@INC_CPACK_ARANGO_DATA_DIR@" mkdir -p "${HOME}@INC_CPACK_ARANGO_LOG_DIR@" mkdir -p "${HOME}@INC_CPACK_ARANGODB_APPS_DIRECTORY@" if test ! -f "${HOME}@INC_CPACK_INSTALL_SYSCONFDIR@"; then cp -R "${ROOTDIR}@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_SYSCONFDIR_ARANGO@" "${ARANGOD_CONF_DIR}/" fi if test ! -f "${HOME}@INC_CPACK_ARANGO_DATA_DIR@/SERVER" -a ! -f "${HOME}@INC_CPACK_ARANGO_DATA_DIR@/ENGINE"; then STORAGE_ENGINE=$( /usr/bin/osascript <<-EOF set issueList to {"auto", "mmfiles", "rocksdb"} set selectedIssue to {choose from list issueList} return selectedIssue EOF ) if test "$STORAGE_ENGINE" == "false"; then STORAGE_ENGINE=auto fi sed -i -e "s;storage-engine = auto;storage-engine = $STORAGE_ENGINE;" "${ARANGOD_CONF}" else if "${ROOTDIR}/arangod" -c "${ARANGOD_CONF}" --database.check-version true; then echo "database doesn't need an upgrade." else UPGRADE_DB=$(/usr/bin/osascript< "${ROOTDIR}/$base.$$" chmod 755 "${ROOTDIR}/$base.$$" mv "${ROOTDIR}/$base.$$" "${ROOTDIR}/$base" done # start the server PIDFILE="${HOMEDIR}@INC_CPACK_ARANGO_PID_DIR@/arangod.pid" if [ -f "${PIDFILE}" ]; then result=$( /usr/bin/osascript -s so <<-EOF tell application "System Events" activate display dialog "PID File ${PIDFILE} exists, server already running. Press OK to try to start the server anyhow." end tell EOF ) if echo "$result" | grep -Fq "User canceled"; then exit 0 fi fi test -d "${ROOTDIR}@INC_CPACK_ARANGO_PID_DIR@" || mkdir "${ROOTDIR}@INC_CPACK_ARANGO_PID_DIR@" "${ROOTDIR}/arangod" -c "${ARANGOD_CONF}" --daemon --pid-file "${PIDFILE}" # create some information for the user INFOFILE="/tmp/ArangoDB-CLI.info.$$" ( echo "" echo "ArangoDB server has been started" echo "" echo "The database directory is located at" echo " '${HOME}@INC_CPACK_ARANGO_DATA_DIR@'" echo "" echo "The log file is located at" echo " '${HOME}@INC_CPACK_ARANGO_LOG_DIR@/arangod.log'" echo "" echo "You can access the server using a browser at 'http://127.0.0.1:8529/'" echo "or start the ArangoDB shell" echo " '${ROOTDIR}/arangosh'" echo "" echo "Switching to log-file now, closing this window will NOT stop the server." echo "" echo "" ) > $INFOFILE # start a Terminal.app session /usr/bin/osascript <<-EOF tell application "Terminal" do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${HOME}@INC_CPACK_ARANGO_LOG_DIR@/arangod.log" activate end tell EOF # start safari and open web ui sleep 10; /usr/bin/osascript <<-EOF tell application "Safari" open location "http://127.0.0.1:8529/" activate end tell EOF