From 0ff90256e4cb4f0be50ef21f48e9d3a7fcd2b15c Mon Sep 17 00:00:00 2001 From: raul Date: Thu, 16 Jan 2025 21:49:39 +0100 Subject: [PATCH] Add proper documentation --- class/scripts2/banco.sh | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/class/scripts2/banco.sh b/class/scripts2/banco.sh index 3368d89..9a319e3 100755 --- a/class/scripts2/banco.sh +++ b/class/scripts2/banco.sh @@ -2,10 +2,14 @@ FILE="./BANCO.txt" RE='^[0-9]+$' +# Simple función para poder permitir al usuario leer la salida +# de una acción antes de limpiar la pantalla pause() { read -p "Pulse enter para continuar: " } +# Lista los movimientos y los ordena con sort por su +# campo de fecha list() { FILE_CONTENTS="$(cat $FILE | sort -t ';' -k3)" if ! checkExists $FILE_CONTENTS; then @@ -16,6 +20,8 @@ list() { formatear "$FILE_CONTENTS" } +# Método cómodo de imprimir mensajes más bonitos sin repetirse +# mucho a uno mismo formatear() { TEXTO="$1" @@ -24,12 +30,16 @@ formatear() { echo -e "----------------------------------\n" } +# Comprueba si no existe el archivo y lo crea en caso de que +# no exista fileCheck() { if [[ ! -f "$FILE" ]]; then touch ./BANCO.txt fi } +# Algo no muy complicado, simplemente agarra entrada de usuario +# y la redirige al archivo addMove() { read -p "Nombre: " NOMBRE FECHA=$(date -u +%Y-%m-%d_%H-%M-%S) @@ -46,15 +56,19 @@ addMove() { formatear "Movimiento exitosamente añadido!" } +# Comprueba si la ID que le llegue por parámetro ya existe en la +# base de datos checkExists() { CHECK_TARGET="$1" - TARGET_CONTENTS=$(grep "^$1;*" $FILE) + TARGET_CONTENTS=$(grep "^$CHECK_TARGET;*" $FILE) if [[ -z $TARGET_CONTENTS ]]; then return 1 fi } +# Permite borrar un movimiento combinando sed con la anterior +# función para primero comprobar si existe deleteMove() { DELETE_TARGET="$1" @@ -73,6 +87,11 @@ deleteMove() { formatear "Movimiento exitosamente borrado!" } +# Probablemente lo más interesante que ha salido de este script: +# Una manera de poder buscar identificadores libres al crear nuevos +# movimientos la cual es también compatible con identificadores de +# entradas anteriormente borradas, muy útil, probablemente reutilizaré +# esta lógica en el futuro con un lenguaje de verdad findFreeID() { COUNT=0 while true; do @@ -85,6 +104,7 @@ findFreeID() { done } +# Busca un movimiento individual por ID searchMove() { SEARCH_TARGET=$1 @@ -96,11 +116,15 @@ searchMove() { formatear "$(grep "^$SEARCH_TARGET;*" $FILE)" } +# Mini-función utilizada en main() para buscar y borrar +# movimientos search() { read -p "ID de movimiento a buscar: " MOV echo $MOV } +# Función utilizada para sumar los saldos de todos los +# movimientos disponibles calcTotal() { TOTAL=0 CALC_COL=$(cut -d ";" -f 4 $FILE) @@ -128,6 +152,8 @@ status() { END_CAT } +# Función main, muy simplificada gracias a apoyarse en todas las +# funciones anteriores main() { fileCheck while true; do