summaryrefslogtreecommitdiffstats
path: root/client/shared/etc/preinit/loadenviron.sh
blob: bf3113d244223467dc84ec7eef038fcaaa5abf23 (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/bash
#/**
#@file    loadenviron.sh
#@brief   Script de carga de la API de funciones de OpenGnsys.
#@warning License: GNU GPLv3+
#@version 0.9
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2009-10-10
#@version 1.0.3 - Limpiar código y configuración modo off-line
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2012-01-12
#@version 1.0.5 - Compatibilidad para usar proxy y servidor DNS.
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2014-04-23
#*/

# Idioma por defecto.
export LANG="${LANG:-es_ES}"
locale-gen $LANG

# Directorios del proyecto OpenGnsys.
export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}"
if [ -d $OPENGNSYS ]; then
    export OGBIN=$OPENGNSYS/bin
    export OGETC=$OPENGNSYS/etc
    export OGLIB=$OPENGNSYS/lib
    export OGAPI=$OGLIB/engine/bin
    export OGSCRIPTS=$OPENGNSYS/scripts
    export OGIMG=$OPENGNSYS/images
    export OGCAC=$OPENGNSYS/cache
    export OGLOG=$OPENGNSYS/log

    export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/oglive/rootfs/opt/drbl/sbin
 
    export PATH=$OGSCRIPTS:$PATH:$OGAPI:$OGBIN
   
    # Exportar parámetros del kernel.
    for i in $(cat /proc/cmdline); do
        echo $i | grep -q "=" && export $i
    done
   
    # Cargar fichero de idioma.
    LANGFILE=$OGETC/lang.${LANG%@*}.conf
    if [ -f $LANGFILE ]; then
	source $LANGFILE
	for i in $(awk -F= '{if (NF==2) print $1}' $LANGFILE); do
	    export $i
	done
    fi
    # Mensaje de carga del entorno.
    echo "${MSG_LOADAPI:-.}"

    # Cargar mapa de teclado.
    loadkeys ${LANG%_*} >/dev/null

    # Cargar API de funciones.
    for i in $OGAPI/*.lib; do
        source $i
    done

    for i in $(typeset -F | cut -f3 -d" "); do
	export -f $i
    done

    # Cargar configuración del engine.
    [ -f ${OGETC}/engine.cfg ] && source ${OGETC}/engine.cfg
    export OGLOGCOMMAND=${OGLOGCOMMAND:-/tmp/command.log}
    export OGLOGSESSION=${OGLOGSESSION:-/tmp/session.log}
    
    # Cargar las APIs según engine.
    if [ -n "$ogengine" ]; then
    	for i in $OGAPI/*.$ogengine; do
            [ -f $i ] && source $i 
    	done
    fi
    
    # Configuración de la red (modo offline).
    eval $(grep "^DEVICECFG=" /tmp/initrd.cfg 2>/dev/null)
    if [ -n "$DEVICECFG" ]; then
        export DEVICECFG
        [ -f $DEVICECFG ] && source $DEVICECFG
    fi
    
    # FIXME Pruebas para grupos de ordenadores
    export OGGROUP="$group"
    
    ROOTREPO=${ROOTREPO:-"$OGSERVERIMAGES"}
   
    # Fichero de registros.
    export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log"
fi

# Compatibilidad para usar proxy en clientes ogLive.
[ -z "$http_proxy" -a -n "$ogproxy" ] && export http_proxy="$ogproxy" 

# Compatibilidad para usar servidor DNS en clientes ogLive.
if [ ! -f /run/resolvconf/resolv.conf -a -n "$ogdns" ]; then
	mkdir -p /run/resolvconf
	echo "nameserver $ogdns" > /run/resolvconf/resolv.conf
fi

# Declaración de códigos de error.
export OG_ERR_FORMAT=1		# Formato de ejecución incorrecto.
export OG_ERR_NOTFOUND=2	# Fichero o dispositivo no encontrado.
export OG_ERR_PARTITION=3	# Error en partición de disco.
export OG_ERR_LOCKED=4		# Partición o fichero bloqueado.
export OG_ERR_IMAGE=5		# Error al crear o restaurar una imagen.
export OG_ERR_NOTOS=6		# Sin sistema operativo.
export OG_ERR_NOTEXEC=7		# Programa o función no ejecutable.
# Códigos 8-13 reservados por ogAdmClient.h
export OG_ERR_NOTWRITE=14	# No hay acceso de escritura
export OG_ERR_NOTCACHE=15	# No hay particion cache en cliente
export OG_ERR_CACHESIZE=16	# No hay espacio en la cache para almacenar fichero-imagen
export OG_ERR_REDUCEFS=17	# Error al reducir sistema archivos
export OG_ERR_EXTENDFS=18	# Error al expandir el sistema de archivos
export OG_ERR_OUTOFLIMIT=19	# Valor fuera de rango o no válido.
export OG_ERR_FILESYS=20	# Sistema de archivos desconocido o no se puede montar
export OG_ERR_CACHE=21 		# Error en partición de caché local
export OG_ERR_NOGPT=22		# El disco indicado no contiene una particion GPT
export OG_ERR_REPO=23		# Error al montar el repositorio de imagenes
export OG_ERR_NOMSDOS=24    # El disco indicado no contienen una particion MSDOS 

export OG_ERR_IMGSIZEPARTITION=30    # Error al restaurar partición más pequeña que la imagen
export OG_ERR_UPDATECACHE=31	# Error al realizar el comando updateCache
export OG_ERR_DONTFORMAT=32	# Error al formatear
export OG_ERR_IMAGEFILE=33	# Archivo de imagen corrupto o de otra versión de $IMGPROG
export OG_ERR_GENERIC=40 	# Error imprevisto no definido
export OG_ERR_UCASTSYNTAXT=50   # Error en la generación de sintaxis de transferenica UNICAST
export OG_ERR_UCASTSENDPARTITION=51  # Error en envío UNICAST de partición
export OG_ERR_UCASTSENDFILE=52  # Error en envío UNICAST de un fichero
export OG_ERR_UCASTRECEIVERPARTITION=53  # Error en la recepcion UNICAST de una particion
export OG_ERR_UCASTRECEIVERFILE=54   # Error en la recepcion UNICAST de un fichero
export OG_ERR_MCASTSYNTAXT=55   # Error en la generacion de sintaxis de transferenica Multicast.
export OG_ERR_MCASTSENDFILE=56  # Error en envio MULTICAST de un fichero
export OG_ERR_MCASTRECEIVERFILE=57   # Error en la recepcion MULTICAST de un fichero
export OG_ERR_MCASTSENDPARTITION=58  # Error en envio MULTICAST de una particion
export OG_ERR_MCASTRECEIVERPARTITION=59  # Error en la recepcion MULTICAST de una particion
export OG_ERR_PROTOCOLJOINMASTER=60  # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER

export OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada.
export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica)
export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen
export OG_ERR_NOTDIFFERENT=73	# No se detectan diferencias entre la imagen basica y la particion.
export OG_ERR_SYNCHRONIZING=74  # Error al sincronizar, puede afectar la creacion/restauracion de la imagen

export OG_ERR_NOTUEFI=80	# La interfaz UEFI no está activa
export OG_ERR_NOTBIOS=81   # La interfaz BIOS legacy no está activa