]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - inst/util.sh
ahora parece andar bien
[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
41                 # Escapeo el caracter '-' por '\-'
42                 RTA=$(echo $RTA | sed "s/\-/\\\-/")
43
44                 IS_OK=`echo "$OPCIONES" | grep "$RTA"`
45                 if [ ! -z "$IS_OK" ] && [ ! -z "$RTA" ] ; then
46                         eval "$3=$RTA"
47                         return 0
48                 fi
49         done
50 }
51
52 validar_solo_numeros () {
53         TEST=`echo "$1" | sed "s/[0-9]*//g"`
54         if [ "$TEST" == "" ] ; then
55                 #Ok, son solo numeros
56                 return 0
57         fi
58         # ups, hay algo que no es un numero
59         return 1
60 }
61
62 # Crea un archivo de lock para un script
63 lock () {
64         if is_lock "$1" ; then
65                 # Ya esta loqueado, no lo vuelvo a crear
66                 echo "No"
67                 return
68         fi
69         echo "$$" > "$LOCK_DIR/$1.pid"
70 }
71
72 # Desbloquea el script
73 unlock () {
74         rm -rf "$LOCK_DIR/$1.pid"
75 }
76                         
77
78 # Consulta si un script esta lockeado
79 is_lock () {
80         if [ -e "$LOCK_DIR/$1.pid" ] ; then
81                 # Lock file encontrado!
82                 return 0
83         fi
84         # No hay lock file!
85         return 1
86 }
87
88 # Verifica que un valor este entre otros 2 .... $1 pertecezca  a [$2,$3]
89 # $1 Numero a validar
90 # $2 Cota inferior 
91 # $3 Cota superior
92
93 validar_rango(){
94         if [ "$1" -ge "$2" ] && [ "$1" -le "$3" ]; then
95                 return 0
96         else 
97                 return 1
98         fi
99 }
100                 
101 #leer "Ingrese un directorio" "/tmp" ALGO
102
103 #echo "Ingresaste : $ALGO"
104
105 # Test de preguntanto
106 #preguntar "Sos hombre (s/n)" "sn" OPT
107
108 #if [ "$OPT" == "s" ] ; then
109 #       echo "Sos un mentiroso!!!"
110 #else
111 #       echo "Jaja ... Trola!"
112 #fi
113
114 # Test de preguntanto
115 #preguntar "Que preferis (drogas/cafe/vino/coca cola)" "drogas cafe vino \"coca cola\"" OPT
116
117 #echo "Vos decidis : $OPT"