freebsd-ports/devel/gitlab-runner/files/gitlab_runner.in
Steve Wills 757509ad30 devel/gitlab-runner: Fix env issue
The rc script failed to pass the environtment to the command, causing
automated (non-interactive) configuration to fail.

MFH:		2019Q1
2019-01-16 17:05:47 +00:00

69 lines
2.3 KiB
Bash

#!/bin/sh
# PROVIDE: gitlab_runner
# REQUIRE: DAEMON NETWORKING
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable gitlab_runner:
#
# gitlab_runner_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable gitlab-runner
# gitlab_runner_dir (str): Set to "/var/tmp/gitlab_runner" by default.
# Set it to directory to run gitlab-runner in
# gitlab_runner_user (str): Set to "gitlab-runner" by default.
# Set it to user to run gitlab_runner under
# gitlab_runner_group (str): Set to "gitlab-runner" by default.
# Set it to group to run gitlab-runner under
# gitlab_runner_syslogtag (str):Set to "gitlab-runner" by default.
# Set it to tag to be used by syslog
#
. /etc/rc.subr
name="gitlab_runner"
rcvar="gitlab_runner_enable"
load_rc_config $name
: ${gitlab_runner_enable:="NO"}
: ${gitlab_runner_dir:="/var/tmp/gitlab_runner"}
: ${gitlab_runner_user:="gitlab-runner"}
: ${gitlab_runner_group:="gitlab-runner"}
: ${gitlab_runner_syslogtag:="gitlab-runner"}
export HOME=${gitlab_runner_dir}
export PATH=${PATH}:%%PREFIX%%/bin
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
command_args="-f -p ${pidfile} env HOME=${gitlab_runner_dir} ${gitlab_runner_env} %%PREFIX%%/bin/gitlab-runner run --syslog --service ${gitlab_runner_syslogtag}"
gitlab_runner_chdir="${gitlab_runner_dir}"
procname=%%PREFIX%%/bin/gitlab-runner
start_precmd="gitlab_runner_startprecmd"
list_cmd="listfunc"
register_cmd="registerfunc"
listfunc()
{
su -m ${gitlab_runner_user} -c "env HOME=${gitlab_runner_dir} ${gitlab_runner_env} %%PREFIX%%/bin/gitlab-runner list"
}
registerfunc()
{
su -m ${gitlab_runner_user} -c "env HOME=${gitlab_runner_dir} ${gitlab_runner_env} %%PREFIX%%/bin/gitlab-runner register"
}
gitlab_runner_startprecmd()
{
if [ ! -e "${pidfile}" ]; then
install -g ${gitlab_runner_group} -o ${gitlab_runner_user} -- /dev/null "${pidfile}";
fi
if [ ! -d "${gitlab_runner_dir}" ]; then
install -d -o "${gitlab_runner_user}" -g "${gitlab_runner_group}" "${gitlab_runner_dir}"
fi
}
extra_commands="list register"
run_rc_command $1