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 | #@version 1.1.0 - Incluir sistema operativo. |
---|
11 | #@author Ramón Gómez - Univ. Sevilla |
---|
12 | #@date 2016-06-08 |
---|
13 | |
---|
14 | |
---|
15 | # Variables. |
---|
16 | PROG=$(basename $0) |
---|
17 | OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} |
---|
18 | SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg |
---|
19 | MYCNF=/tmp/.my.cnf.$$ |
---|
20 | |
---|
21 | # Si se solicita, mostrar ayuda. |
---|
22 | if [ "$*" == "help" ]; then |
---|
23 | echo "$PROG: Lista el software instalado en una imagen de sistema." |
---|
24 | echo "Formato: $PROG str_image" |
---|
25 | exit 0 |
---|
26 | fi |
---|
27 | |
---|
28 | # Control básico de errores. |
---|
29 | if [ $# -ne 1 ]; then |
---|
30 | echo "$PROG Error: Formato: $PROG str_image" >&2 |
---|
31 | exit 1 |
---|
32 | fi |
---|
33 | if [ ! -r $SERVERCONF ]; then |
---|
34 | echo "$PROG: Sin acceso a fichero de configuración" |
---|
35 | exit 2 |
---|
36 | fi |
---|
37 | |
---|
38 | # Sustituir caracteres ' por \' para evitar inyección SQL. |
---|
39 | RESOURCE="${1//\'/\'}" |
---|
40 | |
---|
41 | # Obtener datos de acceso a la base de datos. |
---|
42 | source $SERVERCONF |
---|
43 | |
---|
44 | # Componer fichero con credenciales de conexión a la base de datos. |
---|
45 | touch $MYCNF |
---|
46 | chmod 600 $MYCNF |
---|
47 | cat << EOT > $MYCNF |
---|
48 | [client] |
---|
49 | user=$USUARIO |
---|
50 | password=$PASSWORD |
---|
51 | EOT |
---|
52 | |
---|
53 | # Borrar el fichero temporal si termina el proceso. |
---|
54 | trap "rm -f $MYCNF" 0 1 2 3 6 9 15 |
---|
55 | |
---|
56 | # Obtener lista de componentes del perfil de software asociado a la imagen. |
---|
57 | mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \ |
---|
58 | "SELECT descr FROM |
---|
59 | ((SELECT 1 AS orden, nombresos.nombreso AS descr |
---|
60 | FROM perfilessoft |
---|
61 | JOIN imagenes USING(idperfilsoft) |
---|
62 | JOIN nombresos USING(idnombreso) |
---|
63 | WHERE imagenes.nombreca='$RESOURCE') |
---|
64 | UNION |
---|
65 | (SELECT 2, softwares.descripcion |
---|
66 | FROM perfilessoft |
---|
67 | JOIN perfilessoft_softwares USING(idperfilsoft) |
---|
68 | JOIN softwares USING(idsoftware) |
---|
69 | JOIN imagenes USING(idperfilsoft) |
---|
70 | WHERE imagenes.nombreca='$RESOURCE')) AS unidas |
---|
71 | ORDER BY orden ASC, descr ASC;" |
---|
72 | |
---|