151 lines
6.6 KiB
Bash
151 lines
6.6 KiB
Bash
#!/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 OGPYFUNCS=$OPENGNSYS/functions
|
|
export OGSCRIPTS=$OPENGNSYS/scripts
|
|
export OGIMG=$OPENGNSYS/images
|
|
export OGCAC=$OPENGNSYS/cache
|
|
export OGLOG=$OPENGNSYS/log
|
|
|
|
export PATH=$OGSCRIPTS:$OGPYFUNCS:$OGBIN:$PATH:/opt/oglive/rootfs/opt/drbl/sbin
|
|
export PYTHONPATH=$OPENGNSYS/lib/python3
|
|
|
|
# Exportar parámetros del kernel.
|
|
for i in $(cat /proc/cmdline); do
|
|
echo $i | grep -q "=" && export $i
|
|
done
|
|
|
|
# Cargar sysctls
|
|
sysctl -p &>/dev/null
|
|
|
|
# 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
|