blob: 1a2e1f26550623d407ef80e44f1b89bb5c23799d (
plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/usr/bin/env bash
VERSION="0.0.2"
PROGRAM="$(basename $0)"
[ -f "${WDRC:-"$HOME/.wdrc"}" ] && source "${WDRC:-"$HOME/.wdrc"}"
WD_NOTES_DIR=${WD_NOTES_DIR:-"$HOME/notes"}
WD_JOURNALS_DIR=${WD_JOURNALS_DIR:-"$WD_NOTES_DIR/journals"}
WD_DEFAULT_SUBCOMMAND=${WD_DEFAULT_SUBCOMMAND:-help}
year=$(date +%Y)
week_number=$(date +%W)
cmd_usage () {
cat <<-_EOF
Usage:
$PROGRAM journal
$PROGRAM edit
$PROGRAM git [<args>]
Run git command in $WD_NOTES_DIR
_EOF
exit 0
}
cmd_version () {
echo $VERSION
exit 0
}
cmd_edit () {
$EDITOR "$WD_NOTES_DIR/index.md"
exit 0
}
cmd_journal () {
local weekly_journal_title="# Week $week_number $year"
local weekly_journal_subtitle="## $(date '+%Y-%m-%d %A')"
local monthly_journal_title="# $(date '+%B %Y')"
local monthly_journal_subtitle="## [Week $week_number $year]($year-week$week_number.md)"
local weekly_journal="$WD_JOURNALS_DIR/$year-week$week_number.md"
local monthly_journal="$WD_JOURNALS_DIR/$(date '+%Y-%m').md"
local file_to_edit="$weekly_journal"
local file_title="$weekly_journal_title"
local file_subtitle="$weekly_journal_subtitle"
case "$1" in
--monthly|-m) shift;
file_to_edit="$monthly_journal"
file_title="$monthly_journal_title"
file_subtitle="$monthly_journal_subtitle"
;;
esac
[ ! -f "$file_to_edit" ] && echo "$file_title" > "$file_to_edit"
grep -qF "$file_subtitle" "$file_to_edit" || echo "$file_subtitle" >> "$file_to_edit"
$EDITOR "$file_to_edit"
exit 0
}
cmd_git () {
cd "$WD_NOTES_DIR" && git "$@"
}
if [ "$#" -eq 0 ]; then
"$PROGRAM" "$WD_DEFAULT_SUBCOMMAND"
exit 0
fi
case "$1" in
help|--help|-h) shift; cmd_usage "$@";;
version|--version|-v) shift; cmd_version "$@";;
journal|j) shift; cmd_journal "$@";;
edit|e) shift; cmd_edit "$@";;
git|g) shift; cmd_git "$@" ;;
*) cmd_usage "$@";;
esac
exit 0
|