mirror of
https://git.freebsd.org/ports.git
synced 2025-04-30 18:46:38 -04:00
131 lines
4.1 KiB
Bash
131 lines
4.1 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: buildbot-worker
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
#
|
|
# Add the following lines to /etc/rc.conf to enable buildbot-worker:
|
|
#
|
|
# buildbot_worker_enable (bool): Set to "YES" to enable buildbot-worker.
|
|
# Default: "NO"
|
|
# buildbot_worker_flags (flags): Set extra command flags here. See buildbot-worker(8)
|
|
# Default: Empty ("").
|
|
# buildbot_worker_user (user): User to run buildbot-worker as.
|
|
# Default: "buildbot"
|
|
# buildbot_worker_basedir (path): Location for buildbot-worker base directory
|
|
# Default: /usr/local/etc/buildbot-worker
|
|
# buildbot_worker_profiles (str): Define profiles names. Space-delimited.
|
|
# Default: Empty ("")
|
|
#
|
|
# This rc.d script supports multiple "profiles". When profiles are
|
|
# specified, the non-profile specific parameters become defaults.
|
|
#
|
|
# Example:
|
|
#
|
|
# buildbot_worker_profiles="foo bar"
|
|
#
|
|
# buildbot_worker_foo_enable="YES"
|
|
# buildbot_worker_foo_basedir="/var/db/buildbot/workers/foo"
|
|
# buildbot_worker_foo_user="foo"
|
|
#
|
|
# buildbot_worker_bar_enable="YES"
|
|
# buildbot_worker_bar_basedir="/var/db/buildbot/workers/bar"
|
|
|
|
. /etc/rc.subr
|
|
|
|
export PATH=${PATH}:%%LOCALBASE%%/bin
|
|
|
|
name="buildbot_worker"
|
|
desc="Buildbot Buildworker"
|
|
rcvar=buildbot_worker_enable
|
|
command="/usr/local/bin/buildbot-worker"
|
|
load_rc_config ${name}
|
|
|
|
# These are just the defaults, they might get overriden for a specific profile.
|
|
eval ": \${${name}_enable:=\"NO\"}"
|
|
eval ": \${${name}_flags:=\"\"}"
|
|
eval ": \${${name}_user:=\"buildbot\"}"
|
|
eval ": \${${name}_basedir:=\"/var/db/buildbot/workers\"}"
|
|
|
|
reload_cmd="${name}_reload"
|
|
start_precmd="${name}_prestart"
|
|
stop_precmd="${name}_prestop"
|
|
|
|
pidfile="${buildbot_worker_basedir}/twistd.pid"
|
|
procname="%%PYTHON_CMD%%"
|
|
|
|
# A specific profile is specified in the command
|
|
if [ -n "$2" ]; then
|
|
profile="$2"
|
|
# Override defaults with profile-specific values
|
|
if [ -n "${buildbot_worker_profiles}" ]; then
|
|
eval buildbot_worker_enable="\${buildbot_worker_${profile}_enable:-${buildbot_worker_enable}}"
|
|
eval buildbot_worker_flags="\${buildbot_worker_${profile}_flags:-${buildbot_worker_flags}}"
|
|
eval buildbot_worker_user="\${buildbot_worker_${profile}_user:-${buildbot_worker_user}}"
|
|
eval buildbot_worker_basedir="\${buildbot_worker_${profile}_basedir:-${buildbot_worker_basedir}/${profile}}"
|
|
eval pidfile="\${buildbot_worker_${profile}_basedir:-${buildbot_worker_basedir}}/twistd.pid"
|
|
else
|
|
echo "$0: extra argument ignored"
|
|
fi
|
|
# A specific profile is not in the command
|
|
else
|
|
# Check if any profiles are defined
|
|
if [ -n "$1" -a -n "${buildbot_worker_profiles}" ]; then
|
|
# Loop through them
|
|
for profile in ${buildbot_worker_profiles}; do
|
|
eval _enable="\${buildbot_worker_${profile}_enable}"
|
|
case "${_enable:-${buildbot_worker_enable}}" in
|
|
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
|
|
continue
|
|
;;
|
|
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
|
|
;;
|
|
*)
|
|
if test -z "$_enable"; then
|
|
_var=buildbot_worker_enable
|
|
else
|
|
_var=buildbot_worker_"${profile}"_enable
|
|
fi
|
|
warn "Bad value" \
|
|
"'${_enable:-${buildbot_worker_enable}}'" \
|
|
"for ${_var}. " \
|
|
"Profile ${profile} skipped."
|
|
continue
|
|
;;
|
|
esac
|
|
echo "===> ${name} profile: ${profile}"
|
|
if $0 $1 ${profile}; then
|
|
success="${profile} ${success:-}"
|
|
else
|
|
failed="${profile} (${retcode}) ${failed:-}"
|
|
fi
|
|
done
|
|
# Exit so that non-profile rc.d is not started when there are profiles
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
buildbot_worker_prestart()
|
|
{
|
|
if [ ! -f "${buildbot_worker_basedir}/buildbot.tac" ]; then
|
|
echo "Worker is not configured."
|
|
echo "Run the following command to create a new worker:"
|
|
echo "su -m ${buildbot_worker_user} -c \"exec ${command} create-worker ${buildbot_worker_basedir} <MASTER HOST> <MASTER USER> <MASTER_PASS>\""
|
|
exit 1
|
|
fi
|
|
rc_flags="start ${buildbot_worker_basedir} ${rc_flags}"
|
|
}
|
|
|
|
buildbot_worker_prestop()
|
|
{
|
|
rc_flags="stop ${buildbot_worker_basedir} ${rc_flags}"
|
|
}
|
|
|
|
buildbot_worker_reload()
|
|
{
|
|
rc_flags="${buildbot_worker_basedir} ${rc_flags}"
|
|
${command} sighup ${rc_flags}
|
|
}
|
|
|
|
run_rc_command "$1"
|