summaryrefslogtreecommitdiffstats
path: root/net/ngircd/test.sh
blob: 0e772cecce4237f9a66123f9fe73131b207d368b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

case "$1" in
ngircd|ngircd-nossl)
	BIN=/usr/sbin/ngircd
	# The daemon, its init script and the default config must be installed.
	[ -x "$BIN" ] || { echo "FAIL: $BIN not installed"; exit 1; }
	[ -x /etc/init.d/ngircd ] || { echo "FAIL: init script missing"; exit 1; }
	[ -f /etc/ngircd.conf ] || { echo "FAIL: /etc/ngircd.conf missing"; exit 1; }

	# The shipped default config must pass ngircd's own validator (exit 0).
	"$BIN" --configtest >/tmp/ngircd-ct.log 2>&1 || {
		echo "FAIL: configtest rejected the default config"; cat /tmp/ngircd-ct.log; exit 1; }
	grep -qi ngircd /tmp/ngircd-ct.log || { echo "FAIL: unexpected configtest output"; exit 1; }

	# configtest must actually read the file it is given: pointing it at a
	# missing config has to fail, proving the positive check above is real.
	if "$BIN" --configtest --config /tmp/ngircd-absent.conf >/dev/null 2>&1; then
		echo "FAIL: configtest accepted a missing config file"; exit 1
	fi

	echo "ngircd: config validation OK"
	;;
*)
	exit 0
	;;
esac