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-10-10 |
---|
9 | #@version 1.0.3 - Limpiar código y configuración modo off-line |
---|
10 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
11 | #@date 2012-01-12 |
---|
12 | #@version 1.0.5 - Compatibilidad para usar proxy y servidor DNS. |
---|
13 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
14 | #@date 2014-04-23 |
---|
15 | #*/ |
---|
16 | |
---|
17 | # Idioma por defecto. |
---|
18 | export LANG="${LANG:-es_ES}" |
---|
19 | locale-gen $LANG |
---|
20 | |
---|
21 | echo "Cargando entorno de OpenGnsys (load environment)..." |
---|
22 | |
---|
23 | # Directorios del proyecto OpenGnsys. |
---|
24 | export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}" |
---|
25 | if [ -d $OPENGNSYS ]; then |
---|
26 | export OGBIN=$OPENGNSYS/bin |
---|
27 | export OGETC=$OPENGNSYS/etc |
---|
28 | export OGLIB=$OPENGNSYS/lib |
---|
29 | export OGAPI=$OGLIB/engine/bin |
---|
30 | export OGSCRIPTS=$OPENGNSYS/scripts |
---|
31 | export OGIMG=$OPENGNSYS/images |
---|
32 | export OGCAC=$OPENGNSYS/cache |
---|
33 | export OGLOG=$OPENGNSYS/log |
---|
34 | |
---|
35 | export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/oglive/rootfs/opt/drbl/sbin |
---|
36 | |
---|
37 | export PATH=$OGSCRIPTS:$PATH:$OGAPI:$OGBIN |
---|
38 | |
---|
39 | # Exportar parámetros del kernel. |
---|
40 | for i in $(cat /proc/cmdline); do |
---|
41 | echo $i | grep -q "=" && export $i |
---|
42 | done |
---|
43 | |
---|
44 | # Cargar fichero de idioma. |
---|
45 | LANGFILE=$OGETC/lang.${LANG%@*}.conf |
---|
46 | if [ -f $LANGFILE ]; then |
---|
47 | source $LANGFILE |
---|
48 | for i in $(awk -F= '{if (NF==2) print $1}' $LANGFILE); do |
---|
49 | export $i |
---|
50 | done |
---|
51 | fi |
---|
52 | # Mensaje de carga del entorno. |
---|
53 | echo "${MSG_LOADAPI:-.}" |
---|
54 | |
---|
55 | # Cargar mapa de teclado. |
---|
56 | loadkeys ${LANG%_*} >/dev/null |
---|
57 | |
---|
58 | # Cargar API de funciones. |
---|
59 | for i in $OGAPI/*.lib; do |
---|
60 | source $i |
---|
61 | done |
---|
62 | |
---|
63 | for i in $(typeset -F | cut -f3 -d" "); do |
---|
64 | export -f $i |
---|
65 | done |
---|
66 | |
---|
67 | # Cargar configuración del engine. |
---|
68 | [ -f ${OGETC}/engine.cfg ] && source ${OGETC}/engine.cfg |
---|
69 | export OGLOGCOMMAND=${OGLOGCOMMAND:-/tmp/command.log} |
---|
70 | export OGLOGSESSION=${OGLOGSESSION:-/tmp/session.log} |
---|
71 | |
---|
72 | # Cargar las APIs según engine. |
---|
73 | if [ -n "$ogengine" ]; then |
---|
74 | for i in $OGAPI/*.$ogengine; do |
---|
75 | [ -f $i ] && source $i |
---|
76 | done |
---|
77 | fi |
---|
78 | |
---|
79 | # Configuración de la red (modo offline). |
---|
80 | eval $(grep "^DEVICECFG=" /tmp/initrd.cfg 2>/dev/null) |
---|
81 | if [ -n "$DEVICECFG" ]; then |
---|
82 | export DEVICECFG |
---|
83 | [ -f $DEVICECFG ] && source $DEVICECFG |
---|
84 | fi |
---|
85 | |
---|
86 | # FIXME Pruebas para grupos de ordenadores |
---|
87 | export OGGROUP="$group" |
---|
88 | |
---|
89 | ROOTREPO=${ROOTREPO:-"$OGSERVERIMAGES"} |
---|
90 | |
---|
91 | # Fichero de registros. |
---|
92 | export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log" |
---|
93 | fi |
---|
94 | |
---|
95 | # Compatibilidad para usar proxy en clientes ogLive. |
---|
96 | [ -z "$http_proxy" -a -n "$ogproxy" ] && export http_proxy="$ogproxy" |
---|
97 | |
---|
98 | # Compatibilidad para usar servidor DNS en clientes ogLive. |
---|
99 | if [ ! -f /run/resolvconf/resolv.conf -a -n "$ogdns" ]; then |
---|
100 | mkdir -p /run/resolvconf |
---|
101 | echo "nameserver $ogdns" > /run/resolvconf/resolv.conf |
---|
102 | fi |
---|
103 | |
---|
104 | # Declaración de códigos de error. |
---|
105 | export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto. |
---|
106 | export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado. |
---|
107 | export OG_ERR_PARTITION=3 # Error en partición de disco. |
---|
108 | export OG_ERR_LOCKED=4 # Partición o fichero bloqueado. |
---|
109 | export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen. |
---|
110 | export OG_ERR_NOTOS=6 # Sin sistema operativo. |
---|
111 | export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable. |
---|
112 | # Códigos 8-13 reservados por ogAdmClient.h |
---|
113 | export OG_ERR_NOTWRITE=14 # No hay acceso de escritura |
---|
114 | export OG_ERR_NOTCACHE=15 # No hay particion cache en cliente |
---|
115 | export OG_ERR_CACHESIZE=16 # No hay espacio en la cache para almacenar fichero-imagen |
---|
116 | export OG_ERR_REDUCEFS=17 # Error al reducir sistema archivos |
---|
117 | export OG_ERR_EXTENDFS=18 # Error al expandir el sistema de archivos |
---|
118 | export OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido. |
---|
119 | export OG_ERR_FILESYS=20 # Sistema de archivos desconocido o no se puede montar |
---|
120 | export OG_ERR_CACHE=21 # Error en partición de caché local |
---|
121 | export OG_ERR_NOGPT=22 # El disco indicado no contiene una particion GPT |
---|
122 | export OG_ERR_REPO=23 # Error al montar el repositorio de imagenes |
---|
123 | export OG_ERR_NOMSDOS=24 # El disco indicado no contienen una particion MSDOS |
---|
124 | |
---|
125 | export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen |
---|
126 | export OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache |
---|
127 | export OG_ERR_DONTFORMAT=32 # Error al formatear |
---|
128 | export OG_ERR_IMAGEFILE=33 # Archivo de imagen corrupto o de otra versión de $IMGPROG |
---|
129 | export OG_ERR_GENERIC=40 # Error imprevisto no definido |
---|
130 | export OG_ERR_UCASTSYNTAXT=50 # Error en la generación de sintaxis de transferenica UNICAST |
---|
131 | export OG_ERR_UCASTSENDPARTITION=51 # Error en envío UNICAST de partición |
---|
132 | export OG_ERR_UCASTSENDFILE=52 # Error en envío UNICAST de un fichero |
---|
133 | export OG_ERR_UCASTRECEIVERPARTITION=53 # Error en la recepcion UNICAST de una particion |
---|
134 | export OG_ERR_UCASTRECEIVERFILE=54 # Error en la recepcion UNICAST de un fichero |
---|
135 | export OG_ERR_MCASTSYNTAXT=55 # Error en la generacion de sintaxis de transferenica Multicast. |
---|
136 | export OG_ERR_MCASTSENDFILE=56 # Error en envio MULTICAST de un fichero |
---|
137 | export OG_ERR_MCASTRECEIVERFILE=57 # Error en la recepcion MULTICAST de un fichero |
---|
138 | export OG_ERR_MCASTSENDPARTITION=58 # Error en envio MULTICAST de una particion |
---|
139 | export OG_ERR_MCASTRECEIVERPARTITION=59 # Error en la recepcion MULTICAST de una particion |
---|
140 | export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER |
---|
141 | |
---|
142 | export OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada. |
---|
143 | export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica) |
---|
144 | export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen |
---|
145 | export OG_ERR_NOTDIFFERENT=73 # No se detectan diferencias entre la imagen basica y la particion. |
---|
146 | export OG_ERR_SYNCHRONIZING=74 # Error al sincronizar, puede afectar la creacion/restauracion de la imagen |
---|
147 | |
---|
148 | export OG_ERR_NOTUEFI=80 # La interfaz UEFI no está activa |
---|
149 | export OG_ERR_NOTBIOS=81 # La interfaz BIOS legacy no está activa |
---|