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 if [ -z $interval ]; then
echo "Asegurese de haber establecido 'intervalo' de regitro y envio de datos." echo "Asegurese de haber establecido 'intervalo' de regitro y envio de datos."
exit 1 exit 1
@ -56,31 +69,11 @@ case $com in
echo "" echo ""
exit exit
;; ;;
stop) stop)
crontab -u root -r crontab -u root -r
echo "Se detuvo la toma y envio de datos." echo "Se detuvo la toma y envio de datos."
echo "" 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) monitor)
$install_dir/monitor.sh $install_dir/monitor.sh
;; ;;

View file

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

View file

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