]> git.llucax.com Git - z.facultad/75.08/llamadas.git/commitdiff
Agrego funcion "die mensaje [cod_error]" para facil manejo de errores criticos, agreg...
authorLeandro Lucarella <llucax@gmail.com>
Sun, 24 Oct 2004 21:57:47 +0000 (21:57 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 24 Oct 2004 21:57:47 +0000 (21:57 +0000)
inst/afimonio
inst/util.sh

index 2c40778f64ee1d0b0874160bf470b9f3ffe8b52f..174c20c970ca05f8441c0c1c747535c61b0d1822 100644 (file)
@@ -5,9 +5,6 @@ BASE_DIR=$HOME/.antifraude
 . "$HOME/.antifraude/conf/afimonio.conf"
 . "$HOME/.antifraude/conf/antifraude.conf"
 
 . "$HOME/.antifraude/conf/afimonio.conf"
 . "$HOME/.antifraude/conf/antifraude.conf"
 
-trap "finalize" INT
-trap "finalize" TERM 
-
 # Es llamada por los trap para deslockear el afimonio 
 finalize() {
        unlock "afimonio" 
 # Es llamada por los trap para deslockear el afimonio 
 finalize() {
        unlock "afimonio" 
@@ -53,15 +50,6 @@ checkfilename(){
 
 #--------------------MAIN SCRIPT----------------------
 
 
 #--------------------MAIN SCRIPT----------------------
 
-# Verifico no correr 2 veces
-if is_lock "afimonio" ; then
-       echo "Ya hay una instancia de afimonio corriendo"
-       exit 1
-fi
-
-# Me lockeo por las dudas
-lock "afimonio" 
-
 # Recupero las rutas a todos los directorios y archivos que necesito
 # Del antifraude
 DATADIR=$ANTI_DATADIR
 # Recupero las rutas a todos los directorios y archivos que necesito
 # Del antifraude
 DATADIR=$ANTI_DATADIR
@@ -75,8 +63,15 @@ LOGDIR=$AFIM_LOGDIR
 LOGNAME=$AFIM_LOGFILE
 LOGFILE=$LOGDIR/$LOGNAME
 
 LOGNAME=$AFIM_LOGFILE
 LOGFILE=$LOGDIR/$LOGNAME
 
+# Capturo señales para salir bien (liberando el lock)
+trap "finalize" INT
+trap "finalize" TERM 
+
+# Me lockeo
+lock "afimonio" || die "No se puede correr, hay otra instancia         corriendo!"
+
 # Comienza el ciclo infinito que mueve los archivos
 # Comienza el ciclo infinito que mueve los archivos
-while [ true ]; do 
+while true; do 
        for file in `ls $SOURCEDIR` ; do
                checkfilename $file     
                if [ "$?" -eq 0 ]; then
        for file in `ls $SOURCEDIR` ; do
                checkfilename $file     
                if [ "$?" -eq 0 ]; then
index 136ab7ce3208fc6c33f51111c196d585fda8b18c..0bb46f1feccf088bd1abfac0d4b247afb30971c5 100755 (executable)
@@ -1,4 +1,4 @@
-#/bin/sh
+#/bin/bash
 
 ## Los scrips que incluyan deben definir BASE_DIR antes de incluirme!
 #BASE_DIR="$PWD"
 
 ## Los scrips que incluyan deben definir BASE_DIR antes de incluirme!
 #BASE_DIR="$PWD"
@@ -60,13 +60,14 @@ validar_solo_numeros () {
 }
 
 # Crea un archivo de lock para un script
 }
 
 # Crea un archivo de lock para un script
+# Devuelve: 0 si ok, 1 si ya esta lockeado, 2 si no pudo crear lock.
 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
 }
 
 # Desbloquea el script
@@ -97,21 +98,19 @@ validar_rango(){
                return 1
        fi
 }
                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"