diff options
| author | EuAndreh <eu@euandre.org> | 2021-03-08 12:32:25 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2021-03-08 12:32:25 -0300 |
| commit | d44c3e53d2ca24a81a1637f22bef3f89ea0b40e0 (patch) | |
| tree | 48a4a182b28afaea67c7920d8af03720e262ab4f /scripts/task | |
| parent | fake-symlinks: Remove default.nix (diff) | |
| download | dotfiles-d44c3e53d2ca24a81a1637f22bef3f89ea0b40e0.tar.gz dotfiles-d44c3e53d2ca24a81a1637f22bef3f89ea0b40e0.tar.xz | |
Move task() from sh/util.sh to scripts/task
Diffstat (limited to 'scripts/task')
| -rwxr-xr-x | scripts/task | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/task b/scripts/task new file mode 100755 index 00000000..6a7cba1e --- /dev/null +++ b/scripts/task @@ -0,0 +1,47 @@ +#!/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 + ;; + *) + ;; + 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" |
