64 lines
1.2 KiB
Fish
64 lines
1.2 KiB
Fish
function jrnl --description 'Lightweight journaling tool'
|
|
argparse h/help d/dir=? -- $argv
|
|
set -f jdir ~/jrnl
|
|
if set -ql _flag_dir[1]
|
|
set jdir _flag_dir[1]
|
|
else if set -q jrnl_directory
|
|
set jdir $jrnl_directory
|
|
end
|
|
|
|
if not test -d $jdir
|
|
mkdir -p $jdir
|
|
end
|
|
|
|
# get the date
|
|
set today (date +'%Y-%m-%d')
|
|
set entry "$jrnl/$today.md"
|
|
# check if journal entry exists
|
|
if not test -f $entry
|
|
set -l template \
|
|
"# $(date +'%A, %b %d, %Y')
|
|
|
|
## Gratitude
|
|
|
|
I'm grateful for ...
|
|
|
|
## + Wins
|
|
|
|
- small_victories
|
|
|
|
## - Challenges
|
|
|
|
- hard_things
|
|
|
|
## Reflection
|
|
|
|
_One sentence to reflect on today:_
|
|
|
|
- reflection.
|
|
|
|
## Learned
|
|
|
|
- fact_insight_or_skill
|
|
|
|
## Tomorrow
|
|
|
|
- prep
|
|
|
|
"
|
|
echo $template >$entry
|
|
set -l prompt "Created $entry, open in $EDITOR? (y/n)"
|
|
while read --nchars 1 -l response --prompt-str="$prompt" or return 1
|
|
printf "\033[1A\033[2K"
|
|
switch $response
|
|
case y Y
|
|
eval $EDITOR $entry
|
|
break
|
|
case n N
|
|
break
|
|
end
|
|
end
|
|
else
|
|
eval $EDITOR $entry
|
|
end
|
|
end
|