Add new adhoc draft script
[khome.git] / home / bin / draft
1 #! /bin/bash
2
3 set -euo pipefail
4
5 bar() {
6 local -r len="${1:-80}" # 1st arg or 80.
7 local -r char="${2:--}" # 2nd arg or a dash.
8
9 seq -s "$char" "$len" | sed -E 's/[0-9]+//g'
10 }
11
12 main() {
13 local -r title_given='Untitled'
14 local -r title_lower=$(echo "$title_given" | tr '[:upper:]' '[:lower:]')
15 local -r title_lower_dashed=$(echo "$title_lower" | sed 's/\s\+/-/g')
16 local -r base="${HOME}/doc/drafts/adhoc"
17 local -r timestamp="$(date --iso-8601=ns)"
18 local -r file="${base}/${timestamp}--${title_lower_dashed}.md"
19
20 mkdir -p "$base"
21 if [[ ! -a "$file" ]]
22 then
23 touch "$file"
24 {
25 echo "$title_given"
26 bar 80 '='
27 echo "started: $timestamp"
28 printf '\n\n'
29 } > "$file"
30 fi
31 echo "$file"
32 }
33
34 main "$@"
This page took 0.054344 seconds and 4 git commands to generate.