From f62aaf6cb180d601b47cc9291a67aed19cc665e9 Mon Sep 17 00:00:00 2001 From: Ayo Date: Sat, 23 Aug 2025 18:40:31 +0200 Subject: [PATCH] refactor(notes): use switch-case for long if-else block --- notes.sh | 211 ++++++++++++++++++++++--------------------------------- 1 file changed, 83 insertions(+), 128 deletions(-) diff --git a/notes.sh b/notes.sh index 5d669db..6c7ea12 100755 --- a/notes.sh +++ b/notes.sh @@ -50,143 +50,98 @@ function createNote() { } function main() { + case "$1" in + # DIFF: Show git diff of staged changes + diff|d) + cd "$notes_dir" + git add . + git diff --staged . + ;; - ## DIFF - if [ "$1" = "diff" ] || [ "$1" = "d" ]; then - cd $notes_dir - git add . - git diff --staged . - ## SYNC notes in directory - elif [ "$1" = "sync" ] || [ "$1" = "s" ]; then - notesSync - - ## LIST notes in directory - elif [ "$1" = "list" ] || [ "$1" = "l" ]; then - echo "ACTIVE NOTES: " - notesSync - if ! [ "$2" = "" ]; then - files=( $notes_dir/$2/*.md ) - else - files=( $notes_dir/*.md ) - fi - index=0 - for file in "${files[@]##*/}"; do - ((index++)) - echo "$index) $file" - done - - ## OPEN a note from a list - elif [ "$1" = "open" ] || [ "$1" = "o" ]; then - notesSync - files=( $notes_dir/*.md ) - - if ! [ "$2" = "" ]; then - index=($2-1) - open_file=${files[$index]} - editFile "$open_file" - else - PS3="Open file #: " - echo "Please select a file to OPEN." - select file in "${files[@]##*/}"; do - { - echo "Opening $file" - editFile "$file" - break - } || - { - echo "bad choice" - break - } - done - fi - - ## REMOVE a note from a list - elif [ "$1" = "remove" ] || [ "$1" = "rm" ]; then - notesSync - files=( $notes_dir/*.md ) - - if ! [ "$2" = "" ]; then - index=($2-1) - remove_file=${files[$index]} - echo "Removing $remove_file" - rm "$remove_file" + # SYNC: Sync notes directory with remote + sync|s) notesSync - else - PS3="Remove file #: " - echo "Please select a file to REMOVE." - select file in "${files[@]##*/}"; do - { - echo "Removing $file" - rm "${notes_dir}/${file}" - notesSync - break - } || - { - echo "bad choice" - break - } - done - fi + ;; - ## ARCHIVE a note from a list - elif [ "$1" = "archive" ] || [ "$1" = "a" ]; then - notesSync - files=( $notes_dir/*.md ) - - if ! [ "$2" = "" ]; then - index=($2-1) - archive_file=${files[$index]} - echo "Archiving $archive_file" - mv "$archive_file" "${archive_dir}/" + # LIST: List all notes in directory + list|l) + echo "ACTIVE NOTES: " notesSync - else - PS3="Archive file #: " - echo "Move a note to ARCHIVE ($(ls ${archive_dir} | wc -l))." - select file in "${files[@]##*/}"; do - { - echo "Archiving $file" - mv "${notes_dir}/${file}" "${archive_dir}/" - notesSync - break - } || - { - echo "bad choice" - break - } - done - fi + if ! [ "$2" = "" ]; then + files=( "$notes_dir/$2"/*.md ) + else + files=( "$notes_dir"/*.md ) + fi + index=0 + for file in "${files[@]##*/}"; do + ((index++)) + echo "$index) $file" + done + ;; - ## COPY content a note from a list - elif [ "$1" = "copy" ] || [ "$1" = "c" ]; then - files=( $notes_dir/*.md ) + # OPEN: Open a note from list or by index + open|o) + notesSync + files=( "$notes_dir"/*.md ) - if ! [ "$2" = "" ]; then - index=($2-1) - copy_file=${files[$index]} - echo "Copied content of $copy_file" - xclip -sel c < "$copy_file" - else - PS3="Copy file content #: " - echo "Select a note to COPY Content." - select file in "${files[@]##*/}"; do - { - echo "Copied content of $file" - xclip -sel c < "${notes_dir}/${file}" - break - } || - { - echo "bad choice" - break - } - done - fi + if ! [ "$2" = "" ]; then + index=$((2-1)) + open_file=${files[$index]} + editFile "$open_file" + else + PS3="Open file #: " + echo "Please select a file to OPEN." + select file in "${files[@]##*/}"; do + { + echo "Opening $file" + editFile "$file" + break + } || + { + echo "bad choice" + break + } + done + fi + ;; + # REMOVE: Remove a note from list or by index + remove|rm) + notesSync + files=( "$notes_dir"/*.md ) - ## CREATE a note (default) - else - createNote - fi + if ! [ "$2" = "" ]; then + index=$((2-1)) + remove_file=${files[$index]} + echo "Removing $remove_file" + rm "$remove_file" + notesSync + else + PS3="Remove file #: " + echo "Please select a file to REMOVE." + select file in "${files[@]##*/}"; do + { + echo "Removing $file" + rm "${notes_dir}/${file}" + notesSync + break + } || + { + echo "bad choice" + break + } + done + fi + ;; + # ARCHIVE: Move a note to archive directory + archive|a) + ;; + # DEFAULT: Default action - create new note + *) + createNote + ;; + esac } main \ No newline at end of file