#/**
#         ogr SetPartitionSize int_ndisk int_npartition int_size
#@brief   Muestra el tamano en KB de una particion determinada.
#@param   int_ndisk      nº de orden del disco
#@param   int_npartition nº de orden de la partición
#@param   int_size       tamaño de la partición (en KB)
#@return  (nada)
#@exception OG_ERR_FORMAT   formato incorrecto.
#@exception OG_ERR_NOTFOUND disco o particion no detectado (no es un dispositivo).
#@note    Requisitos: sfdisk, awk
#@todo    Compruebar que el tamaño sea numérico positivo y evitar que pueda solaparse con la siguiente partición.
#@version 0.9 - Primera versión para OpenGnSys
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2009/07/24
#*/ ##
# Variables locales.
local DISK PART SIZE

# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
    ogr Help "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition int_size" \
           "$FUNCNAME 1 1 10000000"
    return
fi
# Error si no se reciben 3 parámetros.
[ $# == 3 ] || ogr RaiseError $OG_ERR_FORMAT || return $?

# Obtener el tamaño de la partición.
DISK="$(ogr DiskToDev $1)" || return $?
PART="$(ogr DiskToDev $1 $2)" || return $?
# Convertir tamaño en KB a sectores de 512 B.
SIZE=$[$3*2] || ogr RaiseError $OG_ERR_FORMAT || return $?
# Usar \c sfdisk para redefinir el tamaño.
sfdisk -f -uS -N$2 $DISK <<< ",$SIZE" &>/dev/null || ogr RaiseError $OG_ERR_PARTITION "$1,$2" || return $?
partprobe 2>/dev/null
