diff options
Diffstat (limited to 'mk')
-rwxr-xr-x | mk/changelog | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/mk/changelog b/mk/changelog new file mode 100755 index 0000000..34c466e --- /dev/null +++ b/mk/changelog | |||
@@ -0,0 +1,92 @@ | |||
1 | #!/bin/sh | ||
2 | set -e # strict errors | ||
3 | set -u # don't expand unbound variables | ||
4 | set -f # disable pathname expansion | ||
5 | set -C # noclobber | ||
6 | \unalias -a # no command surprises | ||
7 | export LC_ALL=C # no locale headaches | ||
8 | unset IFS # no field splitting surprises | ||
9 | |||
10 | |||
11 | RELPATH=${0%/*} | ||
12 | : RELPATH=${RELPATH:-.} | ||
13 | |||
14 | CHANGELOG=${RELPATH}/../debian/changelog | ||
15 | ROOTDIR=${RELPATH}/.. | ||
16 | |||
17 | GIT="$(command -v git)" | ||
18 | |||
19 | |||
20 | changelog() { | ||
21 | if [ ! -f ${CHANGELOG} ]; then | ||
22 | printf -- "${CHANGELOG}: No such file\n" >&2 | ||
23 | exit 1 | ||
24 | fi | ||
25 | |||
26 | cat ${CHANGELOG} | ||
27 | } | ||
28 | |||
29 | |||
30 | usage() { | ||
31 | cat <<-EOF | ||
32 | usage: ${0##*/} [-h] version|author|commit | ||
33 | -h print this usage message | ||
34 | |||
35 | version most recent package version number | ||
36 | author author of most recent log message | ||
37 | commit Git hash of most recent commit | ||
38 | |||
39 | Report bugs to <william@25thandClement.com> | ||
40 | EOF | ||
41 | } | ||
42 | |||
43 | while getopts h OPT; do | ||
44 | case "${OPT}" in | ||
45 | h) | ||
46 | usage | ||
47 | exit 0 | ||
48 | ;; | ||
49 | *) | ||
50 | usage >&2 | ||
51 | exit 1 | ||
52 | ;; | ||
53 | esac | ||
54 | done | ||
55 | |||
56 | shift $(($OPTIND - 1)) | ||
57 | |||
58 | |||
59 | case "${1:-version}" in | ||
60 | version) | ||
61 | changelog | sed -ne ' | ||
62 | s/.*(\([1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*).*/\1/ | ||
63 | t Found | ||
64 | d | ||
65 | :Found | ||
66 | p | ||
67 | q | ||
68 | ' | ||
69 | ;; | ||
70 | author) | ||
71 | changelog | sed -ne ' | ||
72 | s/.*<\([^>]*@[^>]*\)>.*/\1/ | ||
73 | t Found | ||
74 | d | ||
75 | :Found | ||
76 | p | ||
77 | q | ||
78 | ' | ||
79 | ;; | ||
80 | commit) | ||
81 | test -n "${GIT}" -a -d ${ROOTDIR}/.git || exit 1 | ||
82 | |||
83 | cd ${ROOTDIR} | ||
84 | ${GIT} show --pretty='%H' HEAD 2>/dev/null | sed -n '1p' | ||
85 | ;; | ||
86 | *) | ||
87 | usage >&2 | ||
88 | exit 1 | ||
89 | ;; | ||
90 | esac | ||
91 | |||
92 | exit 0 | ||