-#/bin/sh
+#/bin/bash
+
+## Los scrips que incluyan deben definir BASE_DIR antes de incluirme!
+#BASE_DIR="$PWD"
-BASE_DIR="$HOME/.antifraude"
LOCK_DIR="$BASE_DIR/lock"
# Lee del teclado un valor
OPCIONES=$2
while [ true ] ; do
read -p "$PREGUNTA [$OPCIONES]: " RTA
+
+ # Escapeo el caracter '-' por '\-'
+ RTA=$(echo $RTA | sed "s/\-/\\\-/")
+
IS_OK=`echo "$OPCIONES" | grep "$RTA"`
if [ ! -z "$IS_OK" ] && [ ! -z "$RTA" ] ; then
eval "$3=$RTA"
}
# Crea un archivo de lock para un script
+# Devuelve: 0 si ok, 1 si ya esta lockeado, 2 si no pudo crear lock.
lock () {
- if is_lock "$1" ; then
- # Ya esta loqueado, no lo vuelvo a crear
- echo "No"
- return
- fi
- echo "$$" > "$LOCK_DIR/$1.pid"
+ # si ya esta loqueado, no lo vuelvo a crear
+ is_lock "$1" && return 1
+ # Si no puedo escribir en el dir de lock, da error
+ [ -w "$LOCK_DIR" ] || return 2
+ echo $$ > "$LOCK_DIR/$1.pid"
+ return 0
}
# Desbloquea el script
return 1
fi
}
-
-#leer "Ingrese un directorio" "/tmp" ALGO
-#echo "Ingresaste : $ALGO"
-
-# Test de preguntanto
-#preguntar "Sos hombre (s/n)" "sn" OPT
-
-#if [ "$OPT" == "s" ] ; then
-# echo "Sos un mentiroso!!!"
-#else
-# echo "Jaja ... Trola!"
-#fi
+# Muestra mensaje y sale con código de error
+# Uso: die mensaje [código de error = 1]
+die()
+{
+ echo "$1" >&2
+ exit ${2:-1}
+}
-# Test de preguntanto
-#preguntar "Que preferis (drogas/cafe/vino/coca cola)" "drogas cafe vino \"coca cola\"" OPT
+# Imprime mensaje por salida de error
+# Uso: perr mensajes
+perr()
+{
+ echo $@ >&2
+}
-#echo "Vos decidis : $OPT"