Patrón: Param Patterns v2.0

by Gabriel Gasparolo on 13/11/2005 · 0 comments

Esta es una versión extendida y más completa del script .paramPattern.sh que permite modularizar y reutalizar funcionalidad adicional para los Unix Shell Scripts que se creen.

“Con esta versión se le añaden en forma automática a todos los scripts las funcionalidades de log, edición, ayuda, y ejecución”

Las funcionalidades que serán comunes a todos los scripts son:

  • log: permite visualizar el archivo de logs de ediciones y ejecuciones del script
  • edit: permite editar el archivo. Utilizado de esta forma permite que se registre la edición en el log correspondiente.
  • help: muestra la ayuda del script. La ayuda está en el script mismo –el que se encuentra llamando a .paramPattern.sh– siendo todas aquellas lineas que comienzan con los caracteres “##”
  • run: ejecuta el script en cuestión.


# paramPattern.sh
# Abstrae funcionalidad extra para los scripts. Añade
# la funcionalidad de help y edit.
# Para ser utilizado debe llamarse desde el script cliente
# pasando como argumentos $0 $1.
#

scriptPath=`type $1 | awk '{ print $3 }' `
pgm=${1%.*}
logFile=/tmp/$pgm.log

# Función: writeLog
# Objetivo: Escribe en el archivo de log
# Recibe: Mensaje
writeLog() {
currentTime=`date +"[%D %H:%M:%S]"`
echo $currentTime" "$1 >> $logFile
}

case $2 in
-log)
case empty$logFile in
empty)
echo "Este script no posee log"
exit 3
;;
*)
${EDITOR:-vi} $logFile
exit 4
;;
esac
;;
-edit)
${EDITOR:-vi} $scriptPath
case empty$logFile in
empty)
exit 5
;;
*)
user=` whoami `
writeLog $user" ha editado el script"
exit 6
;;
esac
;;
-help)
sed -n '/^##/s/^## //p' $scriptPath
echo ""
echo "Modo de Uso:"
echo " "$1" [command] [parameters]"
echo ""
echo "Comandos:"
echo "-run Procesa los parámetros suministrados y ejecuta el"
echo " proceso asociado."
echo "-edit Edita el script para su modificación o visualización."
echo "-log Muestra el archivo de logs de accesos al script."
echo "-help Muestra información de ayuda del script."
echo ""
echo "Parametros:"
echo " Los parámetros, que dependen la funcionalidad asociada"
echo " (ver más arriba), no requieren indicación especial."
echo ""
exit 7
;;
-run)
case empty$logFile in
empty)
exit 0
;;
*)
user=` whoami `
writeLog $user" ejecutó el script"
exit 0
;;
esac
;;
*)
.paramPattern.sh $0 -help
exit 9
;;
esac

exit 8



Previous post:

Next post: