summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2013-05-07 17:39:31 +0000
committerramon <ramongomez@us.es>2013-05-07 17:39:31 +0000
commit19b1a2f6682d0bb9af43fbd54642f55ce32cfffd (patch)
tree3798c6a98176ca627c5ce656a47803de810a26a1
parent265d4527a01631d4986aa61c2a01d6ffe7e73f01 (diff)
Versión 1.0.5, #526: Cambios en función {{{ogDiskToDev}}} para soportar que los parámetros puedan ser números positivos (en vez de un único dígito), lo que permite disponer de más de 9 discos y de más de 9 particiones (necesario en tablas GPT).
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3776 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-xclient/engine/Disk.lib11
1 files changed, 7 insertions, 4 deletions
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index 32279a00..35d44bdb 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -405,6 +405,9 @@ return $OG_ERR_NOTFOUND
#@version 0.9 - Primera version para OpenGnSys
#@author Ramon Gomez, ETSII Universidad Sevilla
#@date 2009-07-20
+#@version 1.0.5 - Comprobación correcta de parámetros para soportar valores > 9.
+#@author Ramon Gomez, ETSII Universidad Sevilla
+#@date 2013-05-07
#*/ ##
function ogDiskToDev ()
{
@@ -430,15 +433,15 @@ case $# in
0) # Muestra todos los discos, separados por espacios.
echo $ALLDISKS
;;
- 1) # Error si el parámetro no es un digito.
- [ -z "${1/[1-9]/}" ] || ogRaiseError $OG_ERR_FORMAT || return $?
+ 1) # Error si el parámetro no es un número positivo.
+ [[ "$1" =~ ^[1-9][0-9]*$ ]] || ogRaiseError $OG_ERR_FORMAT "$1" || return $?
DISK=$(echo "$ALLDISKS" | awk -v n=$1 '{print $n}')
# Error si el fichero no existe.
[ -e "$DISK" ] || ogRaiseError $OG_ERR_NOTFOUND "$1" || return $?
echo "$DISK"
;;
- 2) # Error si los 2 parámetros no son digitos.
- [ -z "${1/[1-9]/}" -a -z "${2/[1-9]/}" ] || ogRaiseError $OG_ERR_FORMAT|| return $?
+ 2) # Error si los 2 parámetros no son números positivos.
+ [[ "$1" =~ ^[1-9][0-9]*$ ]] && [[ "$2" =~ ^[1-9][0-9]*$ ]] || ogRaiseError $OG_ERR_FORMAT "$1 $2" || return $?
DISK=$(echo "$ALLDISKS" | awk -v n=$1 '{print $n}')
[ -e "$DISK" ] || ogRaiseError $OG_ERR_NOTFOUND "$1" || return $?
PART="$DISK$2"