#!/sbin/openrc-run
# Copyright 2025 CleanStart

name="GitLab Sidekiq"
description="GitLab Sidekiq - Background job processor"

: ${sidekiq_user:="git"}
: ${sidekiq_group:="git"}
: ${gitlab_path:="/usr/share/webapps/gitlab"}
: ${gitlab_env:="production"}
: ${sidekiq_log:="/var/log/gitlab/sidekiq.log"}

command="/usr/bin/bundle"
command_args="exec sidekiq -C ${gitlab_path}/config/sidekiq_queues.yml"
command_background="yes"
command_user="${sidekiq_user}:${sidekiq_group}"
pidfile="/run/gitlab/sidekiq.pid"
output_log="${sidekiq_log}"
error_log="${sidekiq_log}"

depend() {
need redis gitlab
after redis gitlab
}

start_pre() {
checkpath -d -m 0755 -o "${sidekiq_user}:${sidekiq_group}" /run/gitlab
checkpath -f -m 0640 -o "${sidekiq_user}:${sidekiq_group}" "${sidekiq_log}"
cd "${gitlab_path}"
export RAILS_ENV="${gitlab_env}"
}

stop() {
ebegin "Stopping GitLab Sidekiq"
start-stop-daemon --stop --pidfile "${pidfile}" --retry 60
eend $?
}
