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 guardará las notas, la creará.
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