blob: 203a6a64263ac6a8164389139a6197920ed66362 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#!/bin/bash
#/**
#@file System.lib
#@brief Librería o clase System
#@class System
#@brief Funciones básicas del sistema.
#@version 0.9
#@warning License: GNU GPLv3+
#*/
#/**
# ogEcho [str_loglevel] "str_message..."
#@brief Muestra mensajes en consola y lo registra en fichero de incidencias.
#@param str_loglevel nivel de registro de incidencias.
#@param str_message mensaje (puede recibir más de 1 parámetro.
#@return Mensaje mostrado.
#@note El nivel de ayuda \c (help) no se registra en el fichero de incidencias.
#@version 0.9 - Primera versión para OpenGnSys
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-07-23
#*/
function ogEcho () {
# Variables locales
local LOGLEVEL LOGFILE DATETIME
# Selección del nivel de registro (opcional).
case "$1" in
help) shift ;;
info) LOGLEVEL=$1; shift ;;
warning) LOGLEVEL=$1; shift ;;
error) LOGLEVEL=$1; shift ;;
*) ;;
esac
# Pendiente en cliente Initrd.
#DATETIME=$(date +"%F %T")
if [ -n "$LOGLEVEL" ]; then
logger -s -t "OpenGnSys $LOGLEVEL" $LOGFILE "$DATETIME $*"
else
echo "$*"
fi
}
#/**
# ogRaiseError int_errcode ["str_errmessage" ...]
#@brief Devuelve el mensaje y el código de error correspondiente.
#@param int_errcode código de error.
#@param str_errmessage mensajes complementarios de error.
#@return Mensaje de error.
#@warning No definidas
#@note Mensajes internacionales del fichero de idiomas.
#@version 0.9 - Primera versión para OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-07-21
#*/
function ogRaiseError () {
# Variables locales
local MSG CODE
# Obtener código y mensaje de error.
CODE=$1
case "$CODE" in
$OG_ERR_FORMAT) MSG="$MSG_ERR_FORMAT \"$2\"" ;;
$OG_ERR_NOTFOUND) MSG="$MSG_ERR_NOTFOUND \"$2\"" ;;
$OG_ERR_OUTOFLIMIT) MSG="$MSG_ERR_OUTOFLIMIT \"$2\"" ;;
$OG_ERR_PARTITION) MSG="$MSG_ERR_PARTITION \"$2\"" ;;
$OG_ERR_LOCKED) MSG="$MSG_ERR_LOCKED \"$2\"" ;;
$OG_ERR_CACHE) MSG="$MSG_ERR_CACHE \"$2\"" ;;
$OG_ERR_FILESYS) MSG="$MSG_ERR_FILESYS \"$2\"" ;;
$OG_ERR_IMAGE) MSG="$MSG_ERR_IMAGE \"$2\"" ;;
$OG_ERR_NOTOS) MSG="$MSG_ERR_NOTOS \"$2\"" ;;
$OG_ERR_NOTEXEC) MSG="$MSG_ERR_NOTEXEC \"$2\"" ;;
*) MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;;
esac
# Mostrar mensaje de error y salir con el código indicado.
ogEcho error "${FUNCNAME[1]}: $MSG" >&2
return $CODE
}
#/**
# ogHelp ["str_function" ["str_format" ["str_example" ... ]]]
#@brief Muestra mensaje de ayuda para una función determinda.
#@param str_function Nombre de la función.
#@param str_format Formato de ejecución de la función.
#@param str_example Ejemplo de ejecución de la función.
#@return str_help - Salida de ayuda.
#@note Si no se indican parámetros, la función se toma de la variable \c $FUNCNAME
#@note La descripción de la función se toma de la variable compuesta por \c MSG_FUNC_$función incluida en el fichero de idiomas.
#@note Pueden especificarse varios mensajes con ejemplos.
#@version 0.9 - Primera versión para OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-07-27
#*/
function ogHelp () {
# Variables locales.
local FUNC MSG
# Mostrar función, descripción y formato.
FUNC="${1:-${FUNCNAME[${#FUNCNAME[*]}-1]}}"
MSG="MSG_HELP_$FUNC"
ogEcho help "$MSG_FUNCTION $FUNC: ${!MSG}"
[ -n "$2" ] && ogEcho help " $MSG_FORMAT: $2"
# Mostrar ejemplos (si existen).
shift 2
while [ $# -gt 0 ]; do
ogEcho help " $MSG_EXAMPLE: $1"
shift
done
}
|