all: todo tests man

tests: unit_tests #system-tests

unit_tests: reconf_inetd.py
	SERVICES_FILENAME=test-data/services ./tests.py

system_tests: reconf_inetd.py
	lettuce

VERSION=$(shell (grep '^reconf-inetd' debian/changelog | head -n 1 | sed -e 's/.*(//' -e 's/).*//'))
reconf-inetd: reconf-inetd.source debian/changelog
	@sed "s/RECONF_INETD_VERSION/${VERSION}/" reconf-inetd.source >reconf-inetd
	@chmod 755 reconf-inetd

reconf_inetd.py: reconf-inetd
	$(shell (test -f reconf_inetd.py || ln -s reconf-inetd reconf_inetd.py))

view-man: man
	man ./reconf-inetd.8
man: reconf-inetd.8
reconf-inetd.8: reconf-inetd manpage.txt Makefile
	@help2man -s 8 -n "utility to update /etc/inetd.conf and restart inetd" \
		--include=manpage.txt -N ./reconf-inetd --output=- | \
		egrep -v '(Syntax|Usage):' | \
		fgrep -v 'reconf\-inetd \fB\-\-sanity\-check\fR fragment [... fragment]' | \
		fgrep -v 'reconf\-inetd [\-\-verbose]' \
		>reconf-inetd.8

uml.png: reconf_inetd.py
	pyreverse reconf_inetd.py
	dot classes_No_Name.dot -Tpng -o uml.png
uml: uml.png
	qiv uml.png

todo: TODO
TODO: reconf-inetd todo.in
	@cp todo.in TODO
	@grep TODO reconf-inetd | sed 's/^ *# *TODO //' >> TODO

clean:
	@rm -f *.pyc freshen/*.pyc uml.png classes_No_Name.dot reconf-inetd.8 \
		reconf_inetd.py,cover .coverage* reconf-inetd.log steps.log \
		tests.log features.log reconf_inetd.py reconf-inetd TODO \
		features/data/inetd.conf.orig

reconf_inetd.py,cover: reconf_inetd.py tests
coverage-listing: reconf_inetd.py,cover
	python-coverage -a reconf_inetd.py
	${PAGER} reconf_inetd.py,cover

.PHONY: tests
