#!/sbin/openrc-run

: ${GUIX_PROFILE_USER:=root}

# Set environment variables for locales.
# Taken from the default Guix OpenRC services provided by upstream.
export GUIX_LOCPATH=/var/guix/profiles/per-user/${GUIX_PROFILE_USER}/guix-profile/lib/locale
export LC_ALL=en_US.utf8

if yesno "$PREFER_PACKAGED_DAEMON"; then
	command=/usr/bin/guix-daemon
else
	command="${GUIX_DAEMON:-/var/guix/profiles/per-user/${GUIX_PROFILE_USER}/current-guix/bin/guix-daemon}"
	if [ ! -x "$command" ]; then
		ewarn "Guix binary '${command}' not found, falling back to package binary."
		command=/usr/bin/guix-daemon
	fi
fi

command_user="guix-daemon"
capabilities="^cap_chown"

command_args="--discover=no${command_args:+ ${command_args}}"
supervisor=supervise-daemon

error_logger="logger -t '${RC_SVCNAME}' -p daemon.error"
#output_logger="logger -t '${RC_SVCNAME}' -p daemon.info"

start_pre() {
	checkpath \
		--mode 0755 \
		--directory \
		--owner "guix-daemon:guix-daemon" \
		"/gnu" "/etc/guix" "/var/guix" "/var/log/guix"
}
