blob: e2d14a1c29ea1bd1cee5f731f59cda2c0fa06083 (
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
|
#!/bin/sh
set -eu
uuid() {
# Taken from:
# https://serverfault.com/a/799198
od -xN20 /dev/urandom | \
head -1 | \
awk '{OFS="-"; print $2$3,$4,$5,$6,$7$8$9}'
}
insert_at_line() {
N="$1"
F="$2"
TMP="$(mktemp)"
printf '%s\n\n%s\n\n%s\n' \
"$(head "-n$N" "$F")" \
"$(cat -)" \
"$(tail "-n+$((N+1))" "$F")" \
> "$TMP"
mv "$TMP" "$F"
}
SHORT=
while getopts 'c' flag; do
case "$flag" in
c)
SHORT=1
shift
;;
*)
;;
esac
done
TITLE="${1:-FIXME}"
ID="#task-$(uuid)"
TITLE_LINE="$(printf '## TODO %s {%s}\n- TODO in %s\n' "$TITLE" "$ID" "$(date -I)")"
if [ "$SHORT" = '1' ] && [ "$TITLE" != 'FIXME' ]; then
echo "$TITLE_LINE" | insert_at_line 2 TODOs.md
else
printf '%s\n\n---\n\nFIXME\n' "$TITLE_LINE" | vipe | insert_at_line 2 TODOs.md
fi
git reset .
git add TODOs.md
git commit -m "TODOs.md: Add $ID"
|