#!/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 # binary symlinks SCRIPTS=$( cd "${ROOTDIR}@CMAKE_INSTALL_PREFIX@" && ls -1 {"@CMAKE_INSTALL_BINDIR@","@CMAKE_INSTALL_SBINDIR@"}/* ) for script in $SCRIPTS; do base=$(basename "$script") conf=$base if test $conf == "arangoimp"; then conf=arangoimport fi if test $base == "arangodb"; then cat > "${ROOTDIR}/$base.$$" <<-'EOF' #!/bin/sh realpath() { OURPWD=$PWD cd "$(dirname "$1")" LINK=$(readlink "$(basename "$1")") while [ "$LINK" ]; do cd "$(dirname "$LINK")" LINK=$(readlink "$(basename "$1")") done REALPATH="$PWD/$(basename "$1")" cd "$OURPWD" echo "$REALPATH" } me=$(realpath $0) program=$(basename $me) installation=$(dirname $me) executable=$installation/opt/arangodb/bin/$program if [ -x $executable ] ; then exec $executable --server.arangod=$installation/opt/arangodb/sbin/arangod --server.js-dir=$installation/opt/arangodb/share/arangodb3/js "$@" fi echo "Could not find executable!" exit 1 EOF else ( echo "#!/bin/bash" echo echo "export ROOTDIR=\"${ROOTDIR}@CMAKE_INSTALL_PREFIX@\"" echo echo "exec \"\${ROOTDIR}/$script\" -c \"${ARANGOD_CONF_DIR}${conf}.conf\" \$*" ) > "${ROOTDIR}/$base.$$" fi chmod 755 "${ROOTDIR}/$base.$$" mv "${ROOTDIR}/$base.$$" "${ROOTDIR}/$base" done PIDFILE="/var/tmp/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 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", "rocksdb", "mmfiles"} 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 rm -f "${HOME}@INC_CPACK_ARANGO_DATA_DIR@/LOCK" # FIXME echo "database doesn't need an upgrade." else rm -f "${HOME}@INC_CPACK_ARANGO_DATA_DIR@/LOCK" # FIXME UPGRADE_DB=$(/usr/bin/osascript< $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 # open web ui sleep 10; open "http://127.0.0.1:8529/"