[9f29ba6] | 1 | #!/bin/bash |
---|
| 2 | #/** |
---|
[a247fbd] | 3 | #@file loadenviron.sh |
---|
[d7fe54a] | 4 | #@brief Script de carga de la API de funciones de OpenGnsys. |
---|
[9f29ba6] | 5 | #@warning License: GNU GPLv3+ |
---|
[a247fbd] | 6 | #@version 0.9 |
---|
[9f57de01] | 7 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
[d345fa6] | 8 | #@date 2009-10-10 |
---|
[c39fac3] | 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 |
---|
[55e7ca2] | 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 |
---|
[9f29ba6] | 15 | #*/ |
---|
[2e15649] | 16 | |
---|
[7af582e] | 17 | # Idioma por defecto. |
---|
[89403cd] | 18 | export LANG="${LANG:-es_ES}" |
---|
[7db6a34] | 19 | locale-gen $LANG |
---|
[383fe4b] | 20 | |
---|
[1b42de9] | 21 | echo "Cargando entorno de OpenGnsys (load environment)..." |
---|
| 22 | |
---|
[5bfead0] | 23 | # Directorios del proyecto OpenGnsys. |
---|
[89403cd] | 24 | export OPENGNSYS="${OPENGNSYS:-/opt/opengnsys}" |
---|
[9f57de01] | 25 | if [ -d $OPENGNSYS ]; then |
---|
[383fe4b] | 26 | export OGBIN=$OPENGNSYS/bin |
---|
| 27 | export OGETC=$OPENGNSYS/etc |
---|
| 28 | export OGLIB=$OPENGNSYS/lib |
---|
[5ceca9c] | 29 | export OGAPI=$OGLIB/engine/bin |
---|
[f8f4dfa] | 30 | export OGSCRIPTS=$OPENGNSYS/scripts |
---|
[383fe4b] | 31 | export OGIMG=$OPENGNSYS/images |
---|
| 32 | export OGCAC=$OPENGNSYS/cache |
---|
| 33 | export OGLOG=$OPENGNSYS/log |
---|
| 34 | |
---|
[c5d597c] | 35 | export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/opt/oglive/rootfs/opt/drbl/sbin |
---|
| 36 | |
---|
[914d834] | 37 | export PATH=$OGSCRIPTS:$PATH:$OGAPI:$OGBIN |
---|
| 38 | |
---|
[1222e988] | 39 | # Exportar parámetros del kernel. |
---|
| 40 | for i in $(cat /proc/cmdline); do |
---|
| 41 | echo $i | grep -q "=" && export $i |
---|
| 42 | done |
---|
[914d834] | 43 | |
---|
[7af582e] | 44 | # Cargar fichero de idioma. |
---|
[1222e988] | 45 | LANGFILE=$OGETC/lang.${LANG%@*}.conf |
---|
[d071d9b] | 46 | if [ -f $LANGFILE ]; then |
---|
| 47 | source $LANGFILE |
---|
[d345fa6] | 48 | for i in $(awk -F= '{if (NF==2) print $1}' $LANGFILE); do |
---|
[d071d9b] | 49 | export $i |
---|
| 50 | done |
---|
| 51 | fi |
---|
[c39fac3] | 52 | # Mensaje de carga del entorno. |
---|
| 53 | echo "${MSG_LOADAPI:-.}" |
---|
[914d834] | 54 | |
---|
[f4aee27] | 55 | # Cargar mapa de teclado. |
---|
| 56 | loadkeys ${LANG%_*} >/dev/null |
---|
[914d834] | 57 | |
---|
[7af582e] | 58 | # Cargar API de funciones. |
---|
[d345fa6] | 59 | for i in $OGAPI/*.lib; do |
---|
[f562aed] | 60 | source $i |
---|
[d345fa6] | 61 | done |
---|
[914d834] | 62 | |
---|
[d345fa6] | 63 | for i in $(typeset -F | cut -f3 -d" "); do |
---|
| 64 | export -f $i |
---|
[3d0750f] | 65 | done |
---|
[914d834] | 66 | |
---|
[c39fac3] | 67 | # Cargar configuración del engine. |
---|
| 68 | [ -f ${OGETC}/engine.cfg ] && source ${OGETC}/engine.cfg |
---|
[5a3b7d7] | 69 | export OGLOGCOMMAND=${OGLOGCOMMAND:-/tmp/command.log} |
---|
| 70 | export OGLOGSESSION=${OGLOGSESSION:-/tmp/session.log} |
---|
[c39fac3] | 71 | |
---|
| 72 | # Cargar las APIs según engine. |
---|
| 73 | if [ -n "$ogengine" ]; then |
---|
[914d834] | 74 | for i in $OGAPI/*.$ogengine; do |
---|
[1222e988] | 75 | [ -f $i ] && source $i |
---|
[f562aed] | 76 | done |
---|
| 77 | fi |
---|
[914d834] | 78 | |
---|
[c39fac3] | 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 |
---|
[c5d597c] | 85 | |
---|
[13ccdf5] | 86 | # FIXME Pruebas para grupos de ordenadores |
---|
[7af582e] | 87 | export OGGROUP="$group" |
---|
[9c63218] | 88 | |
---|
| 89 | ROOTREPO=${ROOTREPO:-"$OGSERVERIMAGES"} |
---|
[c39fac3] | 90 | |
---|
| 91 | # Fichero de registros. |
---|
| 92 | export OGLOGFILE="$OGLOG/$(ogGetIpAddress).log" |
---|
[9f29ba6] | 93 | fi |
---|
| 94 | |
---|
[55e7ca2] | 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 | |
---|
[7af582e] | 104 | # Declaración de códigos de error. |
---|
[f8f4dfa] | 105 | export OG_ERR_FORMAT=1 # Formato de ejecución incorrecto. |
---|
[aae34f6] | 106 | export OG_ERR_NOTFOUND=2 # Fichero o dispositivo no encontrado. |
---|
[f8f4dfa] | 107 | export OG_ERR_PARTITION=3 # Error en partición de disco. |
---|
| 108 | export OG_ERR_LOCKED=4 # Partición o fichero bloqueado. |
---|
[715bedc] | 109 | export OG_ERR_IMAGE=5 # Error al crear o restaurar una imagen. |
---|
| 110 | export OG_ERR_NOTOS=6 # Sin sistema operativo. |
---|
[d345fa6] | 111 | export OG_ERR_NOTEXEC=7 # Programa o función no ejecutable. |
---|
[c39fac3] | 112 | # Códigos 8-13 reservados por ogAdmClient.h |
---|
[eb9424f] | 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 |
---|
[e538e62] | 118 | export OG_ERR_OUTOFLIMIT=19 # Valor fuera de rango o no válido. |
---|
[1ee5d4d3] | 119 | export OG_ERR_FILESYS=20 # Sistema de archivos desconocido o no se puede montar |
---|
[a0df67a5] | 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 |
---|
[cead9e3] | 122 | export OG_ERR_REPO=23 # Error al montar el repositorio de imagenes |
---|
[5743a04] | 123 | export OG_ERR_NOMSDOS=24 # El disco indicado no contienen una particion MSDOS |
---|
[eb9424f] | 124 | |
---|
[c39fac3] | 125 | export OG_ERR_IMGSIZEPARTITION=30 # Error al restaurar partición más pequeña que la imagen |
---|
[167b8d5] | 126 | export OG_ERR_UPDATECACHE=31 # Error al realizar el comando updateCache |
---|
[1a2fa9d8] | 127 | export OG_ERR_DONTFORMAT=32 # Error al formatear |
---|
[0531169] | 128 | export OG_ERR_IMAGEFILE=33 # Archivo de imagen corrupto o de otra versión de $IMGPROG |
---|
[a0df67a5] | 129 | export OG_ERR_GENERIC=40 # Error imprevisto no definido |
---|
[c39fac3] | 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. |
---|
[eb9424f] | 136 | export OG_ERR_MCASTSENDFILE=56 # Error en envio MULTICAST de un fichero |
---|
[c39fac3] | 137 | export OG_ERR_MCASTRECEIVERFILE=57 # Error en la recepcion MULTICAST de un fichero |
---|
[eb9424f] | 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 |
---|
[c39fac3] | 140 | export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER |
---|
[eb9424f] | 141 | |
---|
[1ee5d4d3] | 142 | export OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada. |
---|
[e27c4f4] | 143 | export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica) |
---|
[cd1f048] | 144 | export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen |
---|
[253f69e] | 145 | export OG_ERR_NOTDIFFERENT=73 # No se detectan diferencias entre la imagen basica y la particion. |
---|
[c4db9c1] | 146 | export OG_ERR_SYNCHRONIZING=74 # Error al sincronizar, puede afectar la creacion/restauracion de la imagen |
---|
[1a2fa9d8] | 147 | |
---|
[b00e622] | 148 | export OG_ERR_NOTUEFI=80 # La interfaz UEFI no está activa |
---|
[9c98a8d] | 149 | export OG_ERR_NOTBIOS=81 # La interfaz BIOS legacy no está activa |
---|