dotfiles/.config/fish/functions/jrnl.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