#/**
#         ogr ListPartitions int_ndisk
#@brief   Lista las particiones definidas en un disco.
#@param   int_ndisk  nº de orden del disco
#@return  str_parttype:int_partsize ...
#@exception OG_ERR_FORMAT   formato incorrecto.
#@exception OG_ERR_NOTFOUND disco o particion no detectado (no es un dispositivo).
#@note    Requisitos: \c parted \c awk
#@attention El nº de partición se indica por el orden de los párametros \c parttype:partsize
#@attention Las tuplas de valores están separadas por espacios.
#@version 0.9 - Primera versión para OpenGnSys
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2009/07/24
#@version 1.0 - Lista tipos de particiones en vez de sistemas de archivos.
#*/ ##
# Variables locales.
local DISK PART NPARTS TYPE SIZE

# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
    ogr Help "$FUNCNAME" "$FUNCNAME int_ndisk" \
           "$FUNCNAME 1  =>  NTFS:10000000 EXT3:5000000 LINUX-SWAP:1000000"
    return
fi
# Error si no se recibe 1 parámetro.
[ $# == 1 ] || ogr RaiseError $OG_ERR_FORMAT "$FORMAT" || return $?

# Procesar la salida de \c parted .
DISK="$(ogr DiskToDev $1)" || return $?
NPARTS=$(ogr GetPartitionsNumber $1)
for (( PART = 1; PART <= NPARTS; PART++ )); do
    TYPE=$(ogr GetPartitionType $1 $PART 2>/dev/null)
    if [ $? -eq 0 ]; then
        SIZE=$(ogr GetPartitionSize $1 $PART 2>/dev/null)
        echo -n "$TYPE:$SIZE "
    else
        echo -n "EMPTY:0 "
    fi
done
echo
