#!/bin/bash

#_______________________________________________________________________________________________________________________________
#
# Formato de salida:
# disk=Número de disco\tpar=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n
#_______________________________________________________________________________________________________________________________


cfg=""
disks=$(ogDiskToDev | wc -w)
for ((dsk=1; dsk<=$disks; dsk++)); do
    particiones=$(ogGetPartitionsNumber $dsk)
    particiones=${particiones:-0}
    # Tipo de tabla de particiones: 1=MSDOS, 2=GPT
    ptt=$(ogGetPartitionTableType $dsk)
    case "$ptt" in
        MSDOS)  ptt=1 ;; 
        GPT)    ptt=2 ;; 
        *)      ptt=0 ;; 
    esac
    # Información de disco (partición 0)
    cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk);"
    for ((par=1;par<=$particiones;par++)); do
	# Código del identificador de tipo de partición
	cod=$(ogGetPartitionId $dsk $par 2>/dev/null)
	# Tipo del sistema de ficheros
	fsi=$(getFsType $dsk $par 2>/dev/null)
	fsi=${fsi:-"EMPTY"}
	# Tamaño de la particón
	tam=$(ogGetPartitionSize $dsk $par 2>/dev/null)
	tam=${tam:-"0"}
	# Sistema operativo instalado 
	case "$cod" in
		""|82|8200|A502|BF02|EE|EF0[012])
			soi="" ;;
		*)	soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
			# Sistema de archivos para datos (sistema operativo "DATA")
			[ -z "$soi" -a "$fsi" != "EMPTY" -a "$fsi" != "CACHE" ] && soi="DATA"
			;;
   	esac
	cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam;"
    done
done

# Guardar salida en fichero temporal.
cfgfile=/tmp/getconfig
echo $cfg > $cfgfile

# Crear el menú por defecto a partir del fichero generado (no dar ninguna salida).
generateMenuDefault &>/dev/null

# Componer salida formateada.
awk '{  n=split($0,sep,";");
	for (i=1; i<n; i++){
	    split (sep[i],dua,":");
	    printf ("disk=%s\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\n",
		    dua[1],dua[2],dua[3],dua[4],dua[5],dua[6]);
	    }
     }' $cfgfile

