GoRiX blog

A blog about things

Notas Rápidas Script - CLI

August 24, 2024 — n4ch0m4n

Antes usaba un programa de CLI llamado terminal velocity (https://github.com/vhp/terminal_velocity) y por algún motivo no pude hacerlo funcionar más.

En fin, necesitaba algo sencillo, vi algunos ejemplos de algunos compañeros y en alguna que otra web, y me puse a armar uno propio.

El script es sencillo, un menú con 3 opciones: Crear, buscar y salir. Al iniciar si no encuentra la carpeta por defecto donde creará las notas la creara.

La opción de Crear te pedirá un título para la nota y luego que la escribas. La opción de buscar, usará fzf para buscar y a través de una vista previa ver su contenido y la opción de salir….pues eso.

Pego el sencilo script:


#!/bin/bash

NOTES_DIR="$HOME/.notes"

if [ ! -d "$NOTES_DIR" ]; then
    mkdir -p "$NOTES_DIR"
fi

create_note() {
    clear
    read -p "Title: " NOTE_TITLE

    NOTE_TITLE=$(echo "$NOTE_TITLE" | tr ' ' '_' | tr '[:upper:]' '[:lower:]')
    NOTE_NAME="${NOTE_TITLE}_$(date +"%Y-%m-%d_%H-%M-%S").note"
    NOTE_PATH="$NOTES_DIR/$NOTE_NAME"
    $EDITOR "$NOTE_PATH"
}


search_notes() {
    clear
    NOTE_PATH=$(find "$NOTES_DIR" -type f -name "*.note" | fzf --preview='less {}' --bind shift-up:preview-page-up,shift-down:preview-page-down
)

    if [ -n "$NOTE_PATH" ]; then
        $EDITOR "$NOTE_PATH"
    fi
}


show_menu() {
    clear
    echo "Options:"
    echo " (C)reate"
    echo " (F)ind"
    echo " (Q)uit"
}
while true; do
    show_menu
    read -n 1 -p "Option: " OPTION

    case $OPTION in
        c)
            create_note
            ;;
        f)
            search_notes
            ;;
        q)
            exit 0
            ;;
        *)
            echo "Invalid"
            ;;
    esac
done
 

Tags: Scripts