Skip to content

Instantly share code, notes, and snippets.

@sammaxwellxyz
Created February 20, 2020 11:18
Show Gist options
  • Save sammaxwellxyz/8803fc746cf9237edf6a1649f92bfe46 to your computer and use it in GitHub Desktop.
Save sammaxwellxyz/8803fc746cf9237edf6a1649f92bfe46 to your computer and use it in GitHub Desktop.
A bash script for a journaling alias
function jrnl(){
mkdir -p "$HOME/.journal/"
if [ -z "$1" ]; then
local esc=$(printf '\033')
local prev=$([[ `date +"%u"` == "1" ]] && echo `date -v-3d +%F` || echo `date -v-1d +%F`)
if [ -f "$HOME/.journal/`date +"%F"`.txt" ]; then
echo "${esc}[36mToday"
/bin/cat "$HOME/.journal/`date +"%F"`.txt" 2>/dev/null | sed "s/\([0-9:]*\)\(\.*\)/${esc}[35m\1${esc}[39m \2/"
fi
if [ -f "$HOME/.journal/$prev.txt" ]; then
echo "\n${esc}[36mYesterday"
/bin/cat "$HOME/.journal/$prev.txt" 2>/dev/null | sed "s/\([0-9:]*\)\(\.*\)/${esc}[35m\1${esc}[39m \2/"
fi
else
touch "$HOME/.journal/`date +"%F"`.txt"
echo "`date +"%T"` $@" >> "$HOME/.journal/`date +"%F"`.txt"
fi
}
# USE with jrnl in zshrc / bashrc / etc.
# $ jrnl starting to write a maaaaasssive email
# $ jrnl finished to write a maaaaasssive email
# $ jrnl
# Today
# 12:34:56 starting to write a maaaaasssive email
# 14:34:56 finished to write a maaaaasssive email
# .
# .
# . (next day)
# $ jrnl got filthy response email so writing a filthier response
# $ jrnl
# Today
# 10:20:30 got filthy response email so writing a filthier response
# Yesterday
# 12:34:56 starting to write a maaaaasssive email
# 14:34:56 finished to write a maaaaasssive email
# $ cat ~/.journal/2017-03-05.txt
# 17:23:50 discovered what email is
# 18:23:50 cleaned computer after email phishing scam
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment