49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
NOTETYPE="${1-}"
|
|
if [[ "$NOTETYPE" == "daily" ]]; then
|
|
DATESTRING="$(date +%Y/%m/%d)"
|
|
NOTEHEAD=" for $DATESTRING"
|
|
elif [[ "$NOTETYPE" == "monthly" ]]; then
|
|
DATESTRING="$(date +%Y/%m)"
|
|
NOTEHEAD=" for $DATESTRING"
|
|
elif [[ "$NOTETYPE" == "yearly" ]]; then
|
|
DATESTRING="$(date +%Y)"
|
|
NOTEHEAD=" for $DATESTRING"
|
|
elif [[ "$NOTETYPE" == "global" ]]; then
|
|
DATESTRING=""
|
|
NOTEHEAD=""
|
|
else
|
|
echo "usage: nnote <type> [notename]"
|
|
echo " create or edit a note"
|
|
echo " nnote <type> --help | -h"
|
|
echo " get help for a note type"
|
|
echo " "
|
|
echo "nnote requires a type: daily, monthly, yearly, or global"
|
|
echo "if not provided, type is used for notename, too"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${2-}" == "--help" ] || [ "${2-}" == "-h" ]; then
|
|
echo "usage: nnote $NOTETYPE [notename]"
|
|
echo " create a $NOTETYPE note in \$NOTESDIR/$DATESTRING"
|
|
echo " default \$NOTESDIR is ~/Notes"
|
|
echo " yours is ${NOTESDIR-$HOME/Notes}"
|
|
echo " default notename is '$NOTETYPE'"
|
|
echo " multi word notenames accepted without quotes."
|
|
else
|
|
NOTESDIR="${NOTESDIR:-$HOME/Notes}"
|
|
NOTEKIND="$1"
|
|
NOTENAME="${2:-$NOTETYPE}"
|
|
DATEDIR="$NOTESDIR/$DATESTRING"
|
|
mkdir -p "$DATEDIR"
|
|
NOTEPATH="$DATEDIR/$NOTENAME"
|
|
echo "$NOTEPATH"
|
|
if ! [ -f "$NOTEPATH" ]; then
|
|
printf "$NOTENAME$NOTEHEAD\n---\n\n" > "$NOTEPATH"
|
|
fi
|
|
pushd "$NOTESDIR" > /dev/null
|
|
$EDITOR "$NOTEPATH"
|
|
popd > /dev/null
|
|
fi
|