1 | #!/bin/bash |
---|
2 | #/** |
---|
3 | #@file loadenviron.sh |
---|
4 | #@brief Script de carga de la API de funciones de OpenGNSys. |
---|
5 | #@warning License: GNU GPLv3+ |
---|
6 | #@version 0.9 |
---|
7 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
8 | #@date 2009-09-16 |
---|
9 | #*/ |
---|
10 | |
---|
11 | # FIXME Temporal |
---|
12 | export LANG="${LANG:-es_ES}" |
---|
13 | |
---|
14 | #/// Directorios del projecto OpenGNSys. |
---|
15 | export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}" |
---|
16 | if [ -d $OPENGNSYS ]; then |
---|
17 | export OGBIN=$OPENGNSYS/bin |
---|
18 | export OGETC=$OPENGNSYS/etc |
---|
19 | export OGLIB=$OPENGNSYS/lib |
---|
20 | export OGAPI=$OGLIB/engine/bin |
---|
21 | export OGSCRIPTS=$OPENGNSYS/scripts |
---|
22 | export OGIMG=$OPENGNSYS/images |
---|
23 | export OGCAC=$OPENGNSYS/cache |
---|
24 | export OGLOG=$OPENGNSYS/log |
---|
25 | |
---|
26 | export PATH=$OGBIN:$OGAPI:$OGSCRIPTS:$PATH |
---|
27 | export LD_LIBRARY_PATH=$OGLIB:$LD_LIBRARY_PATH |
---|
28 | |
---|
29 | # Para tener /bin/bash y no haya problemas |
---|
30 | ln -fs $OGBIN/bash /bin/bash |
---|
31 | |
---|
32 | # Obtener IP del servidor DHCP/NFS |
---|
33 | SERVERIP=$(awk '/dhcp-server-identifier/ {sub(/;/,""); dhcp=$3} |
---|
34 | END {print dhcp}' \ |
---|
35 | /var/lib/dhcp3/dhclient.leases) |
---|
36 | |
---|
37 | export OGLOGFILE=$OGLOG/$OG_IP.log |
---|
38 | |
---|
39 | # FIXME Pruebas para grupos de ordenadores |
---|
40 | export OGGROUP=aula3 |
---|
41 | |
---|
42 | # Incluimos el modulo del raton |
---|
43 | insmod $OGLIB/modules/psmouse.ko |
---|
44 | |
---|
45 | # Crear directorio de bloqueos |
---|
46 | mkdir -p /var/lock |
---|
47 | |
---|
48 | # Montamos el resto de cosas necesarias |
---|
49 | mount -t nfs -o nolock $SERVERIP:/opt/opengnsys/log/clients $OGLOG |
---|
50 | mount -t nfs -o nolock $SERVERIP:/opt/opengnsys/images $OGIMG |
---|
51 | |
---|
52 | |
---|
53 | #/// Cargar API de funciones y fichero de idioma. |
---|
54 | for i in $OGAPI/*.lib; do |
---|
55 | source $i |
---|
56 | done |
---|
57 | for i in $(typeset -F | cut -f3 -d" "); do |
---|
58 | export -f $i |
---|
59 | done |
---|
60 | LANGFILE=$OGETC/lang.$LANG.conf |
---|
61 | if [ -f $LANGFILE ]; then |
---|
62 | source $LANGFILE |
---|
63 | for i in $(grep "^[a-zA-Z].*=" $LANGFILE | cut -f1 -d=); do |
---|
64 | export $i |
---|
65 | done |
---|
66 | fi |
---|
67 | |
---|
68 | # FIXME Necesario temporalmente |
---|
69 | mkdir -p /usr/local/Trolltech/QtEmbedded-4.5.1/lib/ |
---|
70 | ln -fs $OGLIB/fonts /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts |
---|
71 | |
---|
72 | # FIXME Datos de dispositivos PCI en /etc |
---|
73 | ln -fs $OGLIB/pci.ids /etc |
---|
74 | |
---|
75 | # Cargar paquetes udev |
---|
76 | for i in $OGLIB/udeb/*.udeb; do |
---|
77 | udpkg -i "$i" >/dev/null && echo "$(basename $i) $MSG_INSTALLED" |
---|
78 | done |
---|
79 | fi |
---|
80 | |
---|
81 | #/// Declaración de códigos de error. |
---|
82 | export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto. |
---|
83 | export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado. |
---|
84 | export OG_ERR_PARTITION=3 # Error en partición de disco. |
---|
85 | export OG_ERR_LOCKED=4 # Partición o fichero bloqueado. |
---|
86 | export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen. |
---|
87 | export OG_ERR_NOTOS=6 # Sin sistema operativo. |
---|
88 | export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable. |
---|
89 | |
---|
90 | |
---|