2019-02-05 19:30:40 -08:00
|
|
|
#!/bin/bash
|
2019-03-02 18:44:52 -08:00
|
|
|
if [ "$1" == "-h" ] ; then
|
|
|
|
|
echo "
|
|
|
|
|
nj - new journal, create/open markdown text file for human writing
|
|
|
|
|
- creates new or opens existing file in the user's preferred EDITOR
|
|
|
|
|
(e.g. if defined in .bashrc) else nano is used as default.
|
|
|
|
|
|
|
|
|
|
Usage: `basename $0`
|
|
|
|
|
`basename $0` my-title ~/projects/foo ~/bin/nj-ucsc.md
|
|
|
|
|
|
|
|
|
|
The first example above would create new timestamped file in the default
|
|
|
|
|
notes directory.
|
|
|
|
|
The second example would create/open existing file called 'my-title.md'
|
|
|
|
|
in a directory 'projects/foo' using a custom user template called 'nj-ucsc.tmpl'
|
|
|
|
|
|
|
|
|
|
Setup .bashrc.local or other user specific config file for defining
|
|
|
|
|
EDITOR, MY_NAME variables: 'export EDITOR=subl'
|
|
|
|
|
"
|
|
|
|
|
echo "$(tput setaf 6)$EDITOR $(tput setaf 7)is currently set as editor"
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
2019-02-05 19:30:40 -08:00
|
|
|
defTitle=journal
|
|
|
|
|
defDir=notes
|
2019-03-02 18:44:52 -08:00
|
|
|
defApp=nano #nano,vim,nvim,gvim,emacs,atom,subl
|
|
|
|
|
defTemplate=$HOME/bin/nj.tmpl
|
2019-02-05 19:30:40 -08:00
|
|
|
|
|
|
|
|
title=$1
|
|
|
|
|
basedir=$2
|
|
|
|
|
mdtemplate=$3
|
|
|
|
|
app=$EDITOR
|
2019-03-02 18:44:52 -08:00
|
|
|
author=$MY_NAME
|
|
|
|
|
|
|
|
|
|
if [[ -z $author ]]; then
|
|
|
|
|
author=$USER
|
|
|
|
|
fi
|
2019-02-05 19:30:40 -08:00
|
|
|
|
|
|
|
|
if [[ -z $title ]]; then
|
|
|
|
|
title=$defTitle
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -z $basedir ]]; then
|
|
|
|
|
basedir=$HOME/$defDir
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -z $mdtemplate ]]; then
|
|
|
|
|
mdtemplate=$defTemplate
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -z $app ]]; then
|
|
|
|
|
app=$defApp
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#basedir=if [[ -z $var 2:-$HOME/$defDir}
|
|
|
|
|
|
|
|
|
|
fn=$basedir/$(date +"%Y-%m-%d")-$title.md
|
|
|
|
|
|
|
|
|
|
if [[ -e $fn ]]
|
|
|
|
|
then
|
|
|
|
|
echo "opening $fn"
|
|
|
|
|
$app $fn
|
|
|
|
|
else
|
|
|
|
|
echo "creating $fn"
|
2019-03-02 18:44:52 -08:00
|
|
|
cat $mdtemplate | sed -E "s|(date: ).+|\1$(date --iso-8601='seconds')|" | sed -E "s|(author: ).+|\1$author |" | sed -E "s|(title: ).+|\1$title |" >> $fn
|
2019-02-05 19:30:40 -08:00
|
|
|
$app $fn
|
|
|
|
|
fi
|
|
|
|
|
|