summary refs log tree commit diff
path: root/www/git.causal.agency/source-filter.sh
blob: 87875bd1358d1e21bac4db753c1a1e4aeb450b63 (plain) (blame)
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
#!/bin/sh
set -eu

ctags=/usr/bin/ctags
mtags=/usr/local/libexec/mtags
hilex=/usr/local/libexec/hilex
htagml=/usr/local/libexec/htagml

case "$1" in
	(*.[chlmy]|Makefile|*.mk|*.[1-9])
		tmp=$(mktemp -d -t source-filter)
		trap 'rm -fr "${tmp}"' EXIT
		cd "${tmp}"
		cat >"$1"
		touch tags
		case "$1" in
			(*.[chlmy]) $ctags -w "$1";;
			(*) $mtags "$1";;
		esac
		$hilex -f html "$1" | $htagml -i "$1"
		;;
	(*)
		exec $hilex -t -n "$1" -f html
		;;
esac