# $1 = Leyeda a mostrar de preguntar
# $2 = string con las opciones validas
# $3 = Variable donde guardar el valor ingresado
+# $4 = Valor por defecto si se apreta ENTER
#
preguntar () {
- PREGUNTA=$1
- OPCIONES=$2
- while [ true ] ; do
+ PREGUNTA="$1"
+ OPCIONES="$2"
+ DEFAULT="$4"
+ while true; do
read -p "$PREGUNTA [$OPCIONES]: " RTA
+ # Si me pasaron un default y la respuesta es vacĂa
+ if [ -n "$DEFAULT" -a -z "$RTA" ]; then
+ # devuelvo default
+ RTA="$DEFAULT"
+ return 0
+ fi
+
# Escapeo el caracter '-' por '\-'
RTA=$(echo $RTA | sed "s/\-/\\\-/")
# Crea un archivo de lock para un script
# Devuelve: 0 si ok, 1 si ya esta lockeado, 2 si no pudo crear lock.
+# Uso: lock programa
lock () {
# si ya esta loqueado, no lo vuelvo a crear
is_lock "$1" && return 1
}
# Desbloquea el script
+# Uso: unlock programa
unlock () {
rm -rf "$LOCK_DIR/$1.pid"
}
# Consulta si un script esta lockeado
+# Uso: is_lock programa
is_lock () {
if [ -e "$LOCK_DIR/$1.pid" ] ; then
# Lock file encontrado!
return 1
}
+# Obtiene el pid de un programa lockeado
+# Uso: lock_pid programa
+lock_pid()
+{
+ is_lock "$1" && cat "$LOCK_DIR/$1.pid"
+}
+
# Verifica que un valor este entre otros 2 .... $1 pertecezca a [$2,$3]
# $1 Numero a validar
# $2 Cota inferior