#!/sbin/openrc-run

instance_name="${RC_SVCNAME#rclone.}"
description="rclone ${instance_name} service"

supervisor="supervise-daemon"
command="/usr/bin/rclone"
command_user="${RCLONE_USER:-rclone}:${RCLONE_GROUP:-rclone}"
pidfile="/run/rclone/${RC_SVCNAME}.pid"
respawn_delay="${RCLONE_RESPAWN_DELAY:-5}"
respawn_max="${RCLONE_RESPAWN_MAX:-0}"
supervise_daemon_args="--chdir /var/lib/rclone --pidfile ${pidfile}"
command_args="${RCLONE_COMMAND:-} ${RCLONE_REMOTE:-} --config ${RCLONE_CONFIG:-/etc/rclone/rclone.conf} --cache-dir ${RCLONE_CACHE_DIR:-/var/lib/rclone/cache} ${RCLONE_ARGS:-}"

depend() {
	need net
	use dns logger
}

start_pre() {
	local service_owner="${RCLONE_USER:-rclone}:${RCLONE_GROUP:-rclone}"

	if [ -z "${RCLONE_COMMAND:-}" ]; then
		eerror "RCLONE_COMMAND is required; configure /etc/conf.d/${RC_SVCNAME}"
		return 1
	fi

	checkpath -d -m 0750 -o "$service_owner" \
		/run/rclone \
		"${RCLONE_CACHE_DIR:-/var/lib/rclone/cache}"
}
