summaryrefslogtreecommitdiffstats
path: root/client/engine/System.lib
blob: 73bc3a00fea7f04c48b2a8238d82da8854582f2f (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
#!/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_PARTITION)	MSG="$MSG_ERR_PARTITION \"$2\"" ;;
     $OG_ERR_LOCKED)   	MSG="$MSG_ERR_LOCKED \"$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
}