cli, funciones y validadciones de entradas

This commit is contained in:
Sergio Pernas 2022-03-05 17:59:15 -03:00
parent fd4fde4e5c
commit 11b1b9886e
3 changed files with 37 additions and 41 deletions

View file

@ -36,7 +36,20 @@ case $com in
"
;;
start)
nombre)
funcion_configurar $@
;;
servidor)
funcion_configurar $@
;;
intervalo)
funcion_configurar $@
;;
modo)
funcion_configurar $@
;;
start)
if [ -z $interval ]; then
echo "Asegurese de haber establecido 'intervalo' de regitro y envio de datos."
exit 1
@ -56,31 +69,11 @@ case $com in
echo ""
exit
;;
stop)
stop)
crontab -u root -r
echo "Se detuvo la toma y envio de datos."
echo ""
;;
intervalo)
if [[ $1 == intervalo && $2 -ge 1 && $2 -le 60 ]]; then
sed -i 's/interval=[0-9]*/interval='$2'/' $config
echo "intervalo seteado en $2"
exit
else
echo "Establezca un valor entre 1 y 60."
exit 1
fi
;;
nombre)
parametros=$*
nombre=$(echo $parametros | sed 's/nombre //g' | sed 's/ /_/g')
if [[ "$nombre" =~ ^[a-zA-Z0-9_]+$ ]];then
sed -i 's/name=[a-z A-Z 0-9]*/name='"$nombre"'/' $config
else
echo "El nombre solo puede contener carateres alfanumericos."
fi
;;
monitor)
$install_dir/monitor.sh
;;

View file

@ -1,5 +1,5 @@
#!/bin/bash
#set -x
get_stack () {
if [[ ! -z $1 && $1 == "wc" ]];then
ls /opt/nodemecu/stack | wc -l
@ -19,15 +19,17 @@ funcion_configurar() {
local comando=$1
local parametro=$2
local parametros=$*
local url_regex='(https?)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
case $comando in
local url_regex='(https?|HTTPS?)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
local nuevo_modo='(test|sensores)'
case $comando in
nombre)
while :;do
nombre=$(echo $parametros | sed 's/nombre //g' | sed 's/ /_/g')
nuevo_nombre=$(echo $parametros | sed 's/nombre //g' | sed 's/ /_/g')
if [[ "$nombre" =~ ^[a-zA-Z0-9_]+$ ]];then
sed -i 's/nombre=*/nombre='$nombre'/' $config
sed -i 's/nombre='$nombre'/nombre='$nuevo_nombre'/' $config
echo "nombre: $nuevo_nombre"
break
else
echo "El nombre solo puede contener carateres alfanumericos."
@ -39,7 +41,7 @@ case $comando in
servidor)
while :;do
if [[ $parametro =~ $url_regex ]]; then
sed -i 's}servidor=*}servidor='"$parametro"'}' $config
sed -i 's}servidor='$servidor'}servidor='"$parametro"'}' $config
echo "Servidor $parametro"
break
else
@ -61,17 +63,18 @@ case $comando in
fi
done
;;
modo)
while :;do
if [[ $parametro =~ $nuevo_modo ]]; then
sed -i 's/modo='$modo'/modo='$parametro'/' $config
break
else
echo "Los modos posibles son 'test' y 'sensores'"
read -p "modo: " parametro
fi
done
esac
}

View file

@ -1,5 +1,5 @@
servidor=
nombre=
servidor=
intervalo=
modo=test