Commit | Line | Data |
---|---|---|
ab32f98a SK |
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 "$@" |