1
0
Fork 0

added startup script

This commit is contained in:
Frank Celler 2013-10-27 20:14:48 +01:00
parent eed8ceebd1
commit 96d3c32cb7
10 changed files with 230 additions and 14 deletions

1
.gitignore vendored
View File

@ -92,6 +92,7 @@ cppcheck.log
cppcheck.tmp
Installation/epm/arangodb.sublist
Installation/MacOSX/Bundle/Info.plist
nbproject/
test.cpp.txt

View File

@ -80,17 +80,23 @@ if (USE_MRUBY)
add_definitions("-DTRI_ENABLE_MRUBY=1")
endif ()
################################################################################
### @brief RAW_CONFIG
################################################################################
option(USE_RAW_CONFIG "Do you want to install configuration files with variables" OFF)
################################################################################
### @brief SYSTEM CONFIGURATION DIRECTORY (/etc)
################################################################################
set(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE path "System configuration directory")
set(SYSCONFDIR "etc" CACHE path "System configuration directory")
set(ARANGODB_CONF_DIR ${SYSCONFDIR}/arangodb)
file(TO_NATIVE_PATH "${SYSCONFDIR}" SYSCONFDIR)
file(TO_NATIVE_PATH "${ARANGODB_CONF_DIR}" ARANGODB_CONF_DIR)
file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${ARANGODB_CONF_DIR}" ETCDIR)
add_definitions("-D_SYSCONFDIR_=\"${ARANGODB_CONF_DIR}\"")
add_definitions("-D_SYSCONFDIR_=\"${ETCDIR}\"")
set(TRI_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
set(TRI_DATABASEDIR "${CMAKE_INSTALL_PREFIX}/var/lib/arangodb")
@ -118,7 +124,7 @@ include_directories(${PROJECT_SOURCE_DIR})
set(ICU_INCLUDE ${PROJECT_SOURCE_DIR}/3rdParty/icu/BUILD/include CACHE path "ICU include path")
set(ICU_LIB_PATH ${PROJECT_SOURCE_DIR}/3rdParty/icu/BUILD/libs CACHE path "ICU library path")
set(ICU_LIBS icui18n;icuuc;icudata;pthread;m CACHE path "ICU libraries")
set(ICU_VERSION "49.1.2" CACHE string "ICU version")
set(ICU_VERSION "52.1" CACHE string "ICU version")
if (ICU_INCLUDE)
include_directories(${ICU_INCLUDE})
@ -279,9 +285,13 @@ add_subdirectory(UnitTests)
set(CPACK_SET_DESTDIR ON)
set(CPACK_BUNDLE_NAME "ArangoDB CLI")
set(CPACK_BUNDLE_PLIST "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/Info.plist")
set(CPACK_BUNDLE_ICON "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/icon.icns")
set(CPACK_PACKAGE_NAME "ArangoDB-CLI")
set(CPACK_PACKAGE_VENDOR "triAGENS GmbH")
set(CPACK_BUNDLE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_BUNDLE_PLIST "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/Info.plist")
set(CPACK_BUNDLE_ICON "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/icon.icns")
set(CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/Installation/MacOSX/Bundle/arangodb-cli.sh")
include(CPack)

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>ArangoDB-CLI</string>
<key>CFBundleExecutable</key>
<string>ArangoDB-CLI</string>
<key>CFBundleIconFile</key>
<string>ArangoDB-CLI</string>
<key>CFBundleIdentifier</key>
<string>org.arangodb.ArangoDB-CLI</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>ArangoDB-CLI</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>CFBundleSignature</key>
<string>acli</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<key>NSAppleScriptEnabled</key>
<string>NO</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2013 triAgens. All rights reserved.</string>
<key>LSMinimumSystemVersion</key>
<string>10.8</string>
<key>NSSupportsSuddenTermination</key>
<false/>
<key>NSSupportsAutomaticTermination</key>
<false/>
</dict>
</plist>

View File

@ -0,0 +1,78 @@
#!/bin/bash
ARANGO_ROOT="`echo $0 | sed -e 's/\/Contents\/MacOS\/ArangoDB-CLI//'`"
# create start script
SCRIPTS="`( cd $ARANGO_ROOT/Contents/MacOS/opt/arangodb && ls -1 {bin,sbin}/* )`"
for script in $SCRIPTS; do
base="`basename $script`"
(
echo "#!/bin/bash"
echo
echo "export ARANGO_ROOT=\"${ARANGO_ROOT}/Contents/MacOS//opt/arangodb\""
echo "export DATABASEDIR=\"${ARANGO_ROOT}/Contents/MacOS//opt/arangodb/var/lib/arangodb\""
echo "export LOGDIR=\"${ARANGO_ROOT}/Contents/MacOS//opt/arangodb/var/log/arangodb\""
echo "export PKGDATADIR=\"${ARANGO_ROOT}/Contents/MacOS//opt/arangodb/share/arangodb\""
echo
echo "exec \"${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/$script\" -c \"${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/etc/arangodb/${base}-relative.conf\" \$*"
) > ${ARANGO_ROOT}/Contents/MacOS/$base.$$
chmod 755 ${ARANGO_ROOT}/Contents/MacOS/$base.$$
mv ${ARANGO_ROOT}/Contents/MacOS/$base.$$ ${ARANGO_ROOT}/Contents/MacOS/$base
done
# start the server
PIDFILE="${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/run/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 | fgrep -q "User canceled"; then
exit 0
fi
fi
test -d "${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/run" || mkdir "${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/run"
${ARANGO_ROOT}/Contents/MacOS/arangod --daemon --pid-file "${PIDFILE}"
# create some information for the user
INFOFILE="/tmp/ArangoDB-CLI.info.$$"
(
echo "ArangoDB server has been started"
echo ""
echo "The database directory is located at"
echo " '${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/lib/arangodb'"
echo ""
echo "The log file is located at"
echo " '${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/log/arangodb/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 " '${ARANGO_ROOT}/Contents/MacOS/arangosh'"
echo ""
echo "Switching to log-file now, killing this windows will NOT stop the server."
echo ""
echo ""
) > $INFOFILE
# start a Terminal.app session
/usr/bin/osascript <<-EOF
tell application "Terminal"
activate
do script "clear && cat $INFOFILE && rm $INFOFILE && sleep 20 && exec tail -1 -f ${ARANGO_ROOT}/Contents/MacOS/opt/arangodb/var/log/arangodb/arangod.log"
end tell
EOF

View File

@ -8,6 +8,9 @@ comma := ,
empty :=
space := $(empty) $(empty)
MAJOR_MINOR := $(subst $(space),.,$(wordlist 1,2,$(subst ., ,$(VERSION))))
VERSION_MAJOR := $(wordlist 1,1,$(subst ., ,$(VERSION)))
VERSION_MINOR := $(wordlist 2,2,$(subst ., ,$(VERSION)))
VERSION_PATCH := $(wordlist 3,3,$(subst ., ,$(VERSION)))
## -----------------------------------------------------------------------------
## --SECTION-- FILES
@ -490,6 +493,34 @@ if ENABLE_ALL_IN_ONE_ICU
include 3rdParty/Makefile.all-in-one-icu
endif
## -----------------------------------------------------------------------------
## --SECTION-- CMAKE & CPACK
## -----------------------------------------------------------------------------
.PHONY: pack-dmg
DMG_NAME := ArangoDB-CLI.app
pack-dmg:
rm -rf Build && mkdir Build
./configure \
--prefix=/opt/arangodb \
--enable-mruby
cd Build && cmake \
-D "CMAKE_INSTALL_PREFIX=/opt/arangodb" \
-D "USE_MRUBY=ON" \
-D "USE_RAW_CONFIG=ON" \
-D "CPACK_PACKAGE_VERSION_MAJOR=${VERSION_MAJOR}" \
-D "CPACK_PACKAGE_VERSION_MINOR=${VERSION_MINOR}" \
-D "CPACK_PACKAGE_VERSION_PATCH=${VERSION_PATCH}" \
..
cd Build && cpack \
-G Bundle \
-D "CPACK_INSTALL_PREFIX=${DMG_NAME}/Contents/MacOS/opt/arangodb"
## -----------------------------------------------------------------------------
## --SECTION-- END-OF-FILE
## -----------------------------------------------------------------------------

View File

@ -149,6 +149,13 @@ install(
TARGETS ${BIN_ARANGOD}
RUNTIME DESTINATION sbin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangod.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangod-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangod.conf
DESTINATION ${ARANGODB_CONF_DIR})

View File

@ -46,6 +46,13 @@ install(
TARGETS ${BIN_ARANGOIRB}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangoirb.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangoirb-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangoirb.conf
DESTINATION ${ARANGODB_CONF_DIR})

View File

@ -43,6 +43,13 @@ install(
TARGETS ${BIN_ARANGOB}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangob.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangob-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangob.conf
DESTINATION ${ARANGODB_CONF_DIR})
@ -81,6 +88,13 @@ install(
TARGETS ${BIN_ARANGODUMP}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangodump.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangodump-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangodump.conf
DESTINATION ${ARANGODB_CONF_DIR})
@ -121,6 +135,13 @@ install(
TARGETS ${BIN_ARANGOIMP}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangoimp.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangoimp-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangoimp.conf
DESTINATION ${ARANGODB_CONF_DIR})
@ -159,6 +180,13 @@ install(
TARGETS ${BIN_ARANGORESTORE}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangorestore.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangorestore-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangorestore.conf
DESTINATION ${ARANGODB_CONF_DIR})
@ -199,6 +227,13 @@ install(
TARGETS ${BIN_ARANGOSH}
RUNTIME DESTINATION bin)
if (USE_RAW_CONFIG)
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangosh.conf.in
DESTINATION ${ARANGODB_CONF_DIR}
RENAME arangosh-relative.conf)
endif ()
install(
FILES ${PROJECT_SOURCE_DIR}/etc/arangodb/arangosh.conf
DESTINATION ${ARANGODB_CONF_DIR})

View File

@ -214,7 +214,7 @@ dnl ============================================================================
BUILD_H="\$(top_srcdir)/build.h"
AC_SUBST(BUILD_H)
AC_CONFIG_FILES([Makefile Documentation/arango.template])
AC_CONFIG_FILES([Makefile Documentation/arango.template Installation/MacOSX/Bundle/Info.plist])
AC_CONFIG_HEADER([config/config.h lib/BasicsC/local-configuration.h])
AC_OUTPUT