diff options
author | claw0ry <me@claw0ry.net> | 2024-12-11 13:58:21 +0100 |
---|---|---|
committer | claw0ry <me@claw0ry.net> | 2024-12-11 13:58:21 +0100 |
commit | b56b0d3ca316395a903ed1c7a040bda0ae321c36 (patch) | |
tree | da8a7e975f0f426095350403dc3b39f4fd1ad5dd /scripts/note |
fresh start
Diffstat (limited to 'scripts/note')
-rwxr-xr-x | scripts/note | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/note b/scripts/note new file mode 100755 index 0000000..1e0188d --- /dev/null +++ b/scripts/note @@ -0,0 +1,67 @@ +#!/bin/bash + +# Owner: claw0ry <claw0ry@proton.me> +# Description: Take notes using vim. Theres a lot of assumptions here, so it might not fit your setup. +# Assumptions: +# - Your notes directory is in your $HOME +# - Your home directory is '/home/<user>/' +# - Your notes should be in markdown + +_list_files() { + find "$1" -mindepth 1 -type f | while read file; do + echo "$file" | cut -d'/' -f5- + done +} + +_remove_file() { + if [[ -f "$1" ]]; then + rm -v "$1" + else + echo "ERR: file not found" + return 1 + fi +} + +_open_file() { + # inject template if files does not already exist + if [[ ! -f "$1" ]]; then + local now=$(date -R) + local templ="# TITLE\n\nDate: $now\n\n" + + # opens a new vim buffer with $templ and sets the filename to $1 without writing to it + echo -e $templ | $EDITOR - -c ':set ft=markdown' +"file ${1}" + else + $EDITOR "$1" + fi +} + +_print_usage() { + echo "usage: note [COMMAND] [<filename>]" + echo "Commands:" + echo " list" + echo " List all notes" + echo " rm" + echo " Delete all notes" + echo " help" + echo " Prints usage" +} + +note() { + if [[ -z "$1" ]]; then + _print_usage + return 1 + fi + + case "$1" in + "list") + _list_files "$HOME/notes";; + "rm") + _remove_file "$HOME/notes/$2";; + "help") + _print_usage;; + *) + _open_file "$HOME/notes/$1";; + esac +} + +note "$@" |