aboutsummaryrefslogtreecommitdiff
path: root/v2/src/development/dynmake.sh
blob: 033cbc3ea82c396eaeafa6d8c88f9145de71f693 (about) (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
set -eu


usage() {
	cat <<-'EOF'
		Usage:
		  dynmake.sh
		  dynmake.sh -h
	EOF
}

help() {
	cat <<-'EOF'

		Options:
		  -h, --help    show this message


		Generate make(1) code for later evaluation by make(1).  What
		this scripts does is fill the gap where make(1) can't handle
		globs and dynamic dependencies, and uses some ad-hoc scripts
		to generate those.
	EOF
}

for flag in "$@"; do
	case "$flag" in
		--)
			break
			;;
		--help)
			usage
			help
			exit
			;;
		*)
			;;
	esac
done

while getopts 'h' flag; do
	case "$flag" in
		h)
			usage
			help
			exit
			;;
		*)
			usage >&2
			exit 2
			;;
	esac
done
shift $((OPTIND - 1))



varlist() {
	sed -e 's/^/	/' \
	    -e 's/$/ \\/'
}


#
# Pastebins
#

pastebins() {
	find src/content/pastebins/ -name '*.md'
}

printf 'pastebins.md = \\\n'
pastebins | varlist
printf '\n'

pastebins | sed 's/^\(.*\)\.md$/\1.html: \1.entry-content/'
pastebins | sed 's/^\(.*\)\.md$/\1.html: \1.entry-env/'