]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - inst/util.sh
d4a5dcfaa1dd99b95701544c78917cb8c94a7a88
[z.facultad/75.08/llamadas.git] / inst / util.sh
1 #/bin/sh
2
3 ## Los scrips que incluyan deben definir BASE_DIR antes de incluirme!
4 #BASE_DIR="$PWD"
5
6 LOCK_DIR="$BASE_DIR/lock"
7
8 # Lee del teclado un valor
9 #
10 # parĂ¡metros :
11 #  $1 = Leyeda a mostrar de pregunta
12 #  $2 = Valor default por si el usuario no ingresa nada
13 #  $3 = Variable donde guardar el valor ingresado (o el default)
14 #
15 leer () {
16         MSG=$1
17         DEFAULT=$2
18         read -p "$MSG [$DEFAULT] : " ALGO 
19         # Si el usuario no ingresa nada
20         # nos quedamos con el valor default
21         if [ ! -z "$ALGO" ] ; then
22                 eval "$3=$ALGO"
23         else
24                 eval "$3=$DEFAULT"
25         fi
26 }
27
28 # Realiza una pregunta al usuario
29 #
30 # parĂ¡metros :
31 #  $1 = Leyeda a mostrar de preguntar
32 #  $2 = string con las opciones validas
33 #  $3 = Variable donde guardar el valor ingresado
34 #
35 preguntar () {
36         PREGUNTA=$1
37         OPCIONES=$2
38         while [ true ] ; do
39                 read -p "$PREGUNTA [$OPCIONES]: " RTA
40                 IS_OK=`echo "$OPCIONES" | grep "$RTA"`
41                 if [ ! -z "$IS_OK" ] && [ ! -z "$RTA" ] ; then
42                         eval "$3=$RTA"
43                         return 0
44                 fi
45         done
46 }
47
48 validar_solo_numeros () {
49         TEST=`echo "$1" | sed "s/[0-9]*//g"`
50         if [ "$TEST" == "" ] ; then
51                 #Ok, son solo numeros
52                 return 0
53         fi
54         # ups, hay algo que no es un numero
55         return 1
56 }
57
58 # Crea un archivo de lock para un script
59 lock () {
60         if is_lock "$1" ; then
61                 # Ya esta loqueado, no lo vuelvo a crear
62                 echo "No"
63                 return
64         fi
65         echo "$$" > "$LOCK_DIR/$1.pid"
66 }
67
68 # Desbloquea el script
69 unlock () {
70         rm -rf "$LOCK_DIR/$1.pid"
71 }
72                         
73
74 # Consulta si un script esta lockeado
75 is_lock () {
76         if [ -e "$LOCK_DIR/$1.pid" ] ; then
77                 # Lock file encontrado!
78                 return 0
79         fi
80         # No hay lock file!
81         return 1
82 }
83
84 # Verifica que un valor este entre otros 2 .... $1 pertecezca  a [$2,$3]
85 # $1 Numero a validar
86 # $2 Cota inferior 
87 # $3 Cota superior
88
89 validar_rango(){
90         if [ "$1" -ge "$2" ] && [ "$1" -le "$3" ]; then
91                 return 0
92         else 
93                 return 1
94         fi
95 }
96                 
97 #leer "Ingrese un directorio" "/tmp" ALGO
98
99 #echo "Ingresaste : $ALGO"
100
101 # Test de preguntanto
102 #preguntar "Sos hombre (s/n)" "sn" OPT
103
104 #if [ "$OPT" == "s" ] ; then
105 #       echo "Sos un mentiroso!!!"
106 #else
107 #       echo "Jaja ... Trola!"
108 #fi
109
110 # Test de preguntanto
111 #preguntar "Que preferis (drogas/cafe/vino/coca cola)" "drogas cafe vino \"coca cola\"" OPT
112
113 #echo "Vos decidis : $OPT"