1 | #!/bin/bash |
---|
2 | # registeredsoftware str_image |
---|
3 | #@file registeredsoftware |
---|
4 | #@brief Lista el software instalado en una imagen de sistema. |
---|
5 | #@param str_image Nombre canónico de la imagen. |
---|
6 | #@return Líneas con el formato: programa versión |
---|
7 | #@version 1.0 - Creación del script. |
---|
8 | #@author Ramón Gómez - Univ. Sevilla |
---|
9 | #@date 2014-02-27 |
---|
10 | |
---|
11 | |
---|
12 | # Variables. |
---|
13 | PROG=$(basename $0) |
---|
14 | OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} |
---|
15 | SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg |
---|
16 | MYCNF=/tmp/.my.cnf.$$ |
---|
17 | |
---|
18 | # Si se solicita, mostrar ayuda. |
---|
19 | if [ "$*" == "help" ]; then |
---|
20 | echo "$PROG: Lista el software instalado en una imagen de sistema." |
---|
21 | echo "Formato: $PROG str_image" |
---|
22 | exit 0 |
---|
23 | fi |
---|
24 | |
---|
25 | # Control básico de errores. |
---|
26 | if [ $# -ne 1 ]; then |
---|
27 | echo "$PROG Error: Formato: $PROG str_image" >&2 |
---|
28 | exit 1 |
---|
29 | fi |
---|
30 | if [ ! -r $SERVERCONF ]; then |
---|
31 | echo "$PROG: Sin acceso a fichero de configuración" |
---|
32 | exit 2 |
---|
33 | fi |
---|
34 | |
---|
35 | # Sustituir caracteres ' por \' para evitar inyección SQL. |
---|
36 | RESOURCE="${1//\'/\'}" |
---|
37 | |
---|
38 | # Obtener datos de acceso a la base de datos. |
---|
39 | source $SERVERCONF |
---|
40 | |
---|
41 | # Componer fichero con credenciales de conexión a la base de datos. |
---|
42 | touch $MYCNF |
---|
43 | chmod 600 $MYCNF |
---|
44 | cat << EOT > $MYCNF |
---|
45 | [client] |
---|
46 | user=$USUARIO |
---|
47 | password=$PASSWORD |
---|
48 | EOT |
---|
49 | |
---|
50 | # Borrar el fichero temporal si termina el proceso. |
---|
51 | trap "rm -f $MYCNF" 0 1 2 3 6 9 15 |
---|
52 | |
---|
53 | # Obtener lista de componentes del perfil de software asociado a la imagen. |
---|
54 | mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \ |
---|
55 | "SELECT softwares.descripcion |
---|
56 | FROM perfilessoft |
---|
57 | LEFT OUTER JOIN perfilessoft_softwares ON perfilessoft.idperfilsoft=perfilessoft_softwares.idperfilsoft |
---|
58 | LEFT OUTER JOIN softwares ON softwares.idsoftware=perfilessoft_softwares.idsoftware |
---|
59 | LEFT OUTER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware |
---|
60 | LEFT OUTER JOIN imagenes ON perfilessoft.idperfilsoft=imagenes.idperfilsoft |
---|
61 | WHERE imagenes.nombreca='$RESOURCE' |
---|
62 | ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion;" |
---|
63 | |
---|