summaryrefslogtreecommitdiff
path: root/wd
diff options
context:
space:
mode:
authorGuangxiong Lin <[email protected]>2022-11-12 14:12:36 +0800
committerGuangxiong Lin <[email protected]>2022-11-12 14:12:36 +0800
commit8671b7b71a4b44db9144eaeb603ec94212cb94b3 (patch)
tree6a8a6f841570c8721b7704165f8d6e9023f34132 /wd
parent35970f2cf022d5d475a92e3909ad311b38868c65 (diff)
downloadwd-8671b7b71a4b44db9144eaeb603ec94212cb94b3.tar.gz
wd-8671b7b71a4b44db9144eaeb603ec94212cb94b3.tar.bz2
wd-8671b7b71a4b44db9144eaeb603ec94212cb94b3.zip
Refactor
Diffstat (limited to 'wd')
-rwxr-xr-xwd63
1 files changed, 46 insertions, 17 deletions
diff --git a/wd b/wd
index d6b7c6b..7e62181 100755
--- a/wd
+++ b/wd
@@ -3,7 +3,15 @@
VERSION="0.0.2"
PROGRAM="$(basename $0)"
-cmd_wd_usage () {
+[ -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"}
+
+year=$(date +%Y)
+week_number=$(date +%W)
+
+cmd_usage () {
cat <<-_EOF
Usage:
@@ -14,32 +22,53 @@ _EOF
exit 0
}
-cmd_wd_version () {
+cmd_version () {
echo $VERSION
exit 0
}
-setup_env () {
+cmd_edit () {
+ cd "$WD_NOTES_DIR" && $EDITOR "$WD_NOTES_DIR/index.md"
- local wdrc=${WDRC:-"$HOME/.wdrc"}
- if [ ! -f "$wdrc" ]; then
- touch $wdrc
- fi
- source $wdrc
+ exit 0
+}
- export WD_NOTES_DIR=${WD_NOTES_DIR:-"$HOME/notes"}
- export WD_JOURNALS_DIR=${WD_JOURNALS_DIR:-"$WD_NOTES_DIR/journals"}
+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](week$week_number.md)"
+
+ local weekly_journal="$WD_JOURNALS_DIR/$year/week$week_number.md"
+ local monthly_journal="$WD_JOURNALS_DIR/$year/$(date '+%Y-%m').md"
-setup_env
+ 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"
+
+ cd "$WD_NOTES_DIR" && $EDITOR "$file_to_edit"
+
+ exit 0
+}
case "$1" in
- help|--help|-h) shift; cmd_wd_usage "$@";;
- version|--version|-v) shift; cmd_wd_version "$@";;
- journal|j) shift; "$PROGRAM-journal" "$@";;
- edit|e) shift; "$PROGRAM-edit" "$@";;
- *) cmd_wd_usage "$@";;
+ help|--help|-h) shift; cmd_usage "$@";;
+ version|--version|-v) shift; cmd_version "$@";;
+ journal|j) shift; cmd_journal "$@";;
+ edit|e) shift; cmd_edit "$@";;
+ *) cmd_usage "$@";;
esac
exit 0