#!/bin/bash
#/**
#         bootOsCustom
#@brief   Plantilla para script de configuración personalizada de sistema operativo restaurado.
#@param   $1 nº de disco 
#@param   $2 nº de partición 
#@warning Renombrar este fichero como "bootOsCustom" para personalizar el script estándar "bootOs".
#@note	  La partición a inicializar debe estar montada
#**/
# CONFIGURAR: Partición de datos de Windows que no queremos ocultar
PARTDATA=0

PROG="$(basename $0)"
# Control de errores
if [ $# -lt 2 ]; then
    ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion"
    exit $?
fi

# Parámetros obligatorios.
DISK="$1"               # Nº de disco.
PART="$2"               # Nº de partición.

# Paso 0: Añadir código para realizar control de errores de los parámetros de entrada (recomendado).

# Paso 1: Adaptar el código de ejemplo para postconfiguración personalizada.
# Nota: el script "bootOs" llama al script "bootOsCustom" después de realizar la operaciones de inicio estándar y antes de desmontar las particiones e iniciar el sistema operativo.


MNTDIR=$(ogMount $DISK $PART)
NAME="$(ogGetHostname)"
NAME=${NAME:-"pc"}
OSTYPE=$(ogGetOsType $DISK $PART)

case "$OSTYPE" in
    Windows)
        ## Borrar marcas de arrranque de todos los Windows instalados en el disco.
        #echo "[30] Borrar marcas de arrranque de todos los Windows instalados en el disco."
        #for (( i=1; i<=$(ogGetPartitionsNumber $1); i++ )); do
        #    [ "$(ogGetOsType $1 $i)" == "Windows" ] && ogMount $1 $i &>/dev/null
        #done
        #rm -f /mnt/*/ogboot.*

        ## Mostrar las particiones NTFS de sistema (dos opciones)
        ## Opción 1: SIN ocultar las demás. 
        #echo "[40] Mostrar y activar particion de Windows $PART."
        #[ $(ogGetPartitionType $1 $2) == "HNTFS" ] && ogUnhidePartition $1 $2

        ## Opción 2: Ocultamos las demás. 
        #echo "[40] Activar particion de Windows $PART y ocultar las demás."
        #for (( i=1; i<=$(ogGetPartitionsNumber $DISK); i++ )); do
        #        if [ $i == $PART -o $i == $PARTDATA ]; then
        #	    [ $(ogGetPartitionType $DISK $PART) == "HNTFS" ] && ogUnhidePartition $1 $PART
        #            # Activo la particion si no es de datos
        #            [ $i -ne $PARTDATA ] && ogSetPartitionActive $DISK $i
        #        else
        #            [ "$(ogGetPartitionType $DISK $i)" == NTFS ] && ogHidePartition $DISK $i
        #        fi
        #done
    ;;
    Linux)
        ## Modificar el nombre del equipo
        #echo "[30] Asignar nombre Linux \"$NAME\"."
        #ETC=$(ogGetPath $1 $2 /etc)
        #[ -d "$ETC" ] && echo "$NAME" >$ETC/hostname 2>/dev/null

        ## Sustituir UUID o LABEL por su dispositivo en definición de sistema de archivo raíz.
        #if [ -f "$ETC/fstab" ]; then
        #    echo "[40] Actualizar fstab con particion raiz \"$PART\"."
        #    awk -v P="$PART " '{ if ($2=="/" && $1!~/^#/) {sub(/^.*$/, P, $1)}
        #                         print }' $ETC/fstab >/tmp/fstab
        #    mv /tmp/fstab $ETC/fstab
        #fi

	## Cambiar claves usuarios, copiando fichero /etc/passwd
	## En el servidor el nuevo fichero debe situarse en el directorio del grupo: 
	##    /opt/opengnsys/images/groups/nombre_aula
	#if [ -r $(ogGetGroupDir)/passwd ]; then
	#    echo "[65] Cambiar claves de usuarios." 
	#    cp $(ogGetGroupDir)/passwd $MNTDIR/etc
	#fi
    ;;
esac
