From 6fc7bb3163c0d1f1b9c0ed3118bae6766ccfc7e9 Mon Sep 17 00:00:00 2001 From: Veniamin Gvozdikov <vgvozdikov@tarantool.org> Date: Tue, 7 Jul 2015 15:05:28 +0300 Subject: [PATCH] Updated init script for FreeBSD and fix paths after install --- FreeBSD/databases/tarantool/Makefile | 29 +++++++++- .../databases/tarantool/files/pkg-message.in | 7 +-- .../databases/tarantool/files/tarantool.in | 56 ++++++++++--------- FreeBSD/databases/tarantool/pkg-plist | 4 ++ 4 files changed, 63 insertions(+), 33 deletions(-) diff --git a/FreeBSD/databases/tarantool/Makefile b/FreeBSD/databases/tarantool/Makefile index 983586be85..436b5d4162 100644 --- a/FreeBSD/databases/tarantool/Makefile +++ b/FreeBSD/databases/tarantool/Makefile @@ -19,9 +19,30 @@ USE_GCC= 4.9+ USE_LDCONFIG= yes USE_RC_SUBR= ${PORTNAME} SUB_FILES= pkg-message + +TT_DATADIR?= /var/db/tarantool +TT_RUNDIR?= /var/run/tarantool +TT_LOGDIR?= /var/log/tarantool + CMAKE_ARGS= -DCMAKE_INSTALL_MANDIR=man \ -DCMAKE_INSTALL_SYSCONFDIR=${ETCDIR} \ - -DCMAKE_LOCALSTATE_DIR=${DATADIR} + -DCMAKE_LOCALSTATE_DIR=${DATADIR} \ + -DTARANTOOL_DATADIR="${TT_DATADIR}" + +USERS= tarantool +GROUPS= tarantool + +SUB_LIST+= PORTNAME=${PORTNAME} \ + TT_USER=${USERS} \ + TT_DATADIR=${TT_DATADIR} \ + TT_LOGDIR=${TT_LOGDIR} \ + TT_RUNDIR=${TT_RUNDIR} + +PLIST_SUB+= TT_USER=${USERS} \ + TT_GROUP=${GROUPS} \ + TT_LOGDIR=${TT_LOGDIR} \ + TT_DATADIR=${TT_DATADIR} \ + TT_RUNDIR=${TT_RUNDIR} OPTIONS_DEFINE= DEBUG DEBUG_DESC= Enable debug @@ -40,4 +61,10 @@ CMAKE_ARGS+= -DENABLE_BACKTRACE=OFF BROKEN= Does not build on FreeBSD < 9.0 .endif +post-install: + ${MKDIR} ${STAGEDIR}${TT_LOGDIR} \ + ${STAGEDIR}${TT_DATADIR} \ + ${STAGEDIR}${TT_RUNDIR} \ + ${STAGEDIR}${ETCDIR}/instances.enabled + .include <bsd.port.mk> diff --git a/FreeBSD/databases/tarantool/files/pkg-message.in b/FreeBSD/databases/tarantool/files/pkg-message.in index c793ccc58b..1d5a808cd5 100644 --- a/FreeBSD/databases/tarantool/files/pkg-message.in +++ b/FreeBSD/databases/tarantool/files/pkg-message.in @@ -7,11 +7,8 @@ # # * Enable tarantool on startup: # tarantool_enable="YES" -# * Change config (Default %%ETCDIR%%/default/tarantool): -# tarantool_config="%%ETCDIR%%/default/tarantool" -# * Path to storage, depended by option work_dir at: -# %%ETCDIR%%/default/tarantool -# tarantool_data="/var/db/tarantool" +# * Path to storage instances: +# tarantool_instances="%%ETCDIR%%/instances.enabled" # # ######################################################### diff --git a/FreeBSD/databases/tarantool/files/tarantool.in b/FreeBSD/databases/tarantool/files/tarantool.in index 12500db02a..98ea8dd888 100644 --- a/FreeBSD/databases/tarantool/files/tarantool.in +++ b/FreeBSD/databases/tarantool/files/tarantool.in @@ -7,8 +7,7 @@ # KEYWORD: shutdown # # tarantool_enable="YES" -# tarantool_config="" -# tarantool_data="/var/db/tarantool" +# tarantool_instances="" # . /etc/rc.subr @@ -19,35 +18,38 @@ rcvar=tarantool_enable load_rc_config "$name" tarantool_enable=${tarantool_enable:-"NO"} -tarantool_config=${tarantool_config:-"%%ETCDIR%%/$name.cfg"} -tarantool_data=${tarantool_data:-"/var/db/tarantool"} +tarantool_instances=${tarantool_instances:-"%%ETCDIR%%/instances.enabled"} -command="%%PREFIX%%/bin/tarantool_box" -command_args="--config=${tarantool_config} --background" -pidfile="/var/run/$name.pid" +start_cmd="${name}_start" +stop_cmd="${name}_stop" +restart_cmd="${name}_restart" -start_precmd="${name}_prestart" +INSTANCES=$(find ${tarantool_instances} -type f -name '*.lua') +TDAEMON=%%PREFIX%%/bin/tarantool +TCTL=%%PREFIX%%/bin/tarantoolctl -tarantool_prestart() +tarantool_start() { - if ! [ -d ${tarantool_data} ] - then - eval mkdir -p ${tarantool_data} - fi - - if ! [ -f "${tarantool_data}/00000000000000000001.snap" ] - then - if ! [ -f ${tarantool_config} ] - then - echo "===> Install default config file." - eval cp "%%ETCDIR%%/tarantool.cfg.sample" ${tarantool_config} - echo "===> Install default snapshot." - eval cp "%%DATADIR%%/00000000000000000001.snap" ${tarantool_data} - else - echo "===> Init tarantool storage by ${tarantool_config}" - eval ${command} --config=${tarantool_config} --init-storage - fi - fi + echo "tarantool: Starting instances" + for inst in ${INSTANCES} + do + ${TDAEMON} ${TCTL} start $(basename ${inst} .lua) + done +} + +tarantool_stop() +{ + echo "tarantool: Stopping instances" + for inst in ${INSTANCES} + do + ${TDAEMON} ${TCTL} stop $(basename ${inst} .lua) + done +} + +tarantool_restart() +{ + tarantool_stop + tarantool_start } run_rc_command "$1" diff --git a/FreeBSD/databases/tarantool/pkg-plist b/FreeBSD/databases/tarantool/pkg-plist index 4e325383e4..fd3258d46f 100644 --- a/FreeBSD/databases/tarantool/pkg-plist +++ b/FreeBSD/databases/tarantool/pkg-plist @@ -12,3 +12,7 @@ man/man1/tarantool.1.gz man/man1/tarantoolctl.1.gz %%PORTDOCS%%%%DOCSDIR%%/LICENSE %%PORTDOCS%%%%DOCSDIR%%/README.md +@dir %%ETCDIR%%/instances.enabled +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_DATADIR%% +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_LOGDIR%% +@dir(%%TT_USER%%,%%TT_GROUP%%,) %%TT_RUNDIR%% -- GitLab