* properly run configtest without starting the ircd * don't put unrealircd's pidfile where unrealircd could write it * add IUSE + RDEPEND to build geoip_classic compare with 6.0.4.2.ebuild, confd-r4, initd-r3
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#!/sbin/openrc-run
 | 
						|
# Copyright 1999-2021 Gentoo Authors
 | 
						|
# Distributed under the terms of the GNU General Public License v2
 | 
						|
 | 
						|
# Defaults
 | 
						|
: ${UNREALIRCD_CONF:=/etc/unrealircd/${SVCNAME}.conf}
 | 
						|
: ${UNREALIRCD_PIDFILE:=/run/${SVCNAME#unreal}.pid}
 | 
						|
 | 
						|
# Convenience variable for the chroot bits, not actually user-controllable via conf.d
 | 
						|
UNREALIRCD_USER="unrealircd"
 | 
						|
UNREALIRCD_BIN="/usr/bin/unrealircd"
 | 
						|
UNREALIRCD_COMMAND_ARGS="-F -f ${UNREALIRCD_CONF} ${UNREALIRCD_OPTS}"
 | 
						|
 | 
						|
# Run the daemon in the foreground and let OpenRC background it.
 | 
						|
# This way the PID file is created securely, as root.
 | 
						|
# https://bugs.unrealircd.org/view.php?id=4990
 | 
						|
# https://bugs.gentoo.org/628434
 | 
						|
command_args="${UNREALIRCD_COMMAND_ARGS}"
 | 
						|
command_background=true
 | 
						|
pidfile="${UNREALIRCD_PIDFILE}"
 | 
						|
 | 
						|
start_stop_daemon_args="${UNREALIRCD_SSD_OPTS}"
 | 
						|
extra_started_commands="checkconfig reload"
 | 
						|
 | 
						|
if [ -n "${UNREALIRCD_CHROOT}" ]; then
 | 
						|
	command=/usr/bin/chroot
 | 
						|
	command_args="--userspec ${UNREALIRCD_USER}:${UNREALIRCD_USER} ${UNREALIRCD_CHROOT} ${UNREALIRCD_BIN} ${UNREALIRCD_COMMAND_ARGS}"
 | 
						|
else
 | 
						|
	# We're running it directly so no need for anything special.
 | 
						|
	command="${UNREALIRCD_BIN}"
 | 
						|
	command_user=${UNREALIRCD_USER}
 | 
						|
fi
 | 
						|
 | 
						|
checkconfig() {
 | 
						|
	# command_args weirdness because we want to preserve the chroot arguments if it's set
 | 
						|
	# Only run the configtest for the main instance; it can't work right now for others (no way to specify config file)
 | 
						|
	[ ${SVCNAME} = unrealircd ] && su -s /bin/sh ${command_user:=root} -c "${command} ${command_args%${UNREALIRCD_COMMAND_ARGS}} -c"
 | 
						|
}
 | 
						|
 | 
						|
depend() {
 | 
						|
	use dns net
 | 
						|
	provide ircd
 | 
						|
}
 | 
						|
 | 
						|
start_pre() {
 | 
						|
	checkconfig || return $?
 | 
						|
}
 | 
						|
 | 
						|
reload() {
 | 
						|
	checkconfig || return $?
 | 
						|
 | 
						|
	ebegin "Reloading ${RC_SVCNAME}"
 | 
						|
	start-stop-daemon --signal HUP \
 | 
						|
			  --pidfile "${pidfile}" \
 | 
						|
			  ${UNREALIRCD_SSD_OPTS}
 | 
						|
	eend $?
 | 
						|
}
 |