# This file is part of SvxLink -- a voice services system for ham radio
#
# Copyright (C) 2003-2025 Tobias Blomberg / SM0SVX
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

[Unit]
Description=SvxLink repeater control software
Documentation=man:svxlink(1) man:svxlink.conf(5)
Requires=svxlink_gpio_setup.service
After=network.target remote-fs.target syslog.target time.target
After=svxlink_gpio_setup.service

[Service]
Type=simple
Environment=RUNASUSER=@SVXLINK_USER@
Environment=STATEDIR=@SVX_LOCAL_STATE_DIR@
Environment=CFGFILE=@SVX_SYSCONF_INSTALL_DIR@/svxlink.conf
Environment=LOGFILE=@LOCAL_STATE_DIR@/log/svxlink
EnvironmentFile=@SYSTEMD_DEFAULTS_FILES_DIR@/svxlink
UMask=0002
ExecStartPre=/bin/sh -c ' \
	if echo -n "${LOGFILE}" | grep -q '^/'; then \
	  touch "${LOGFILE}"; \
	  chmod u+w "${LOGFILE}"; \
	  chown ${RUNASUSER}:$(id -gn ${RUNASUSER}) "${LOGFILE}"; \
	fi; \
	'
ExecStartPre=/bin/sh -c ' \
	mkdir -m0775 -p "${STATEDIR}"; \
	chmod -R u+rwX "${STATEDIR}"; \
	chown -R ${RUNASUSER}:$(id -gn ${RUNASUSER}) "${STATEDIR}"; \
	'
ExecStart=@BIN_INSTALL_DIR@/svxlink --logfile=${LOGFILE} --config=${CFGFILE} --runasuser=${RUNASUSER}
ExecStopPost=@BIN_INSTALL_DIR@/svxlink --config=${CFGFILE} --runasuser=${RUNASUSER} --reset --quiet
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
Nice=-10
TimeoutStartSec=60
TimeoutStopSec=10
LimitCORE=infinity
WorkingDirectory=@SVX_SYSCONF_INSTALL_DIR@

[Install]
WantedBy=multi-user.target
