diff options
Diffstat (limited to 'admin/Interface')
-rwxr-xr-x | admin/Interface/Configurar | 116 | ||||
-rwxr-xr-x | admin/Interface/EjecutarScript | 3 |
2 files changed, 61 insertions, 58 deletions
diff --git a/admin/Interface/Configurar b/admin/Interface/Configurar index 661f4d57..18a68ebf 100755 --- a/admin/Interface/Configurar +++ b/admin/Interface/Configurar @@ -67,83 +67,85 @@ IFS='%' read -a TBPRM <<<"$sparam" maxp=0 for ((i=0; i<${#TBPRM[@]}; i++)); do - # Leer datos de la partición, separados por "*". - unset par - IFS='*' read -a CFG <<<"${TBPRM[i]}" 2>/dev/null - [[ ${CFG} =~ = ]] && eval ${CFG[@]} # Comprobar asignación antes de exportar valores. - # Saltar si no existe definición de partición. - if [ -n "$par" -a $par != 0 ]; then - # Componer datos de particionado. - TBP[par]="$cpt:$tam" - # Si se activa operación de formatear, componer datos de formateo. - if [ "$ope" == 1 ]; then - TBF[par]="$sfi" - else - TBF[par]="EMPTY" - fi - # Obtener la partición mayor por si hay que rellenar con valores EMPTY. - [ $par -gt $maxp ] && maxp=$par - fi + # Leer datos de la partición, separados por "*". + unset par + IFS='*' read -a CFG <<<"${TBPRM[i]}" 2>/dev/null + [[ ${CFG} =~ = ]] && eval ${CFG[@]} # Comprobar asignación antes de exportar valores. + # Componer datos de particionado. + if [ "$cpt" != "CACHE" ]; then + TBP[par]="$cpt:$tam" + fi + # Si se activa operación de formatear, componer datos de formateo. + if [ "$ope" == 1 ]; then + # Comprobamos que la particion y el s.f sean validos. + ogCheckStringInGroup $cpt "EMPTY EXTENDED LINUX-SWAP LINUX-LVM" + [ $? -ne 0 ] && TBF[par]="$sfi" + fi + # Obtener la partición mayor. + [ $par -gt $maxp ] && maxp=$par done - -# Control de datos. -for ((par=1; par<=maxp; par++)); do - # Ignorar partición 4 si existe caché. - if [ $che != 1 -o $par -ne 4 ]; then - # Rellenar con "EMPTY:0" la configuración de particiones no definidas. - [ -z "${TBP[par]}" ] && TBP[par]="EMPTY:0" - fi - # Ignorar formateo en particiones que no soportan sistemas de archivos. - case "${TBP[par]%:*}" in - ""|EMPTY|EXTENDED|LINUX-SWAP|LINUX-LVM) - TBF[par]="EMPTY" ;; - esac -done - #____________________________________________________ # # Proceso #____________________________________________________ +# Tamaño actual de la cache +CACHESIZE=$(ogGetCacheSize) # Desmonta todas las particiones y la caché -ogUnmountCache + +ogEcho session log "[10] $MSG_HELP_ogUnmountAll" ogUnmountAll $dis &>/dev/null +ogUnmountCache # Elimina la tabla de particiones -ogDeletePartitionTable $dis -ogExecAndLog session log ogUpdatePartitionTable $dis +ogDeletePartitionTable $dis +ogExecAndLog COMMAND ogUpdatePartitionTable $dis # Crea tabla de particiones MSDOS (NOTA: adaptar para tablas GPT). -ogCreatePartitionTable $dis MSDOS +ogCreatePartitionTable $dis MSDOS -# Cuestión caché -if [ "$che" == "1" ]; then - ogExecAndLog session log initCache $tch +# Inicia la cache. +if echo "$sparam" |grep "CACHE" >/dev/null; then + ogEcho session log "[30] $MSG_HELP_ogCreateCache" + ogEcho session log " initCache $tch" + ogExecAndLog COMMAND initCache $tch fi # Definir particionado. -ogExecAndLog session log ogCreatePartitions $dis ${TBP[@]} -ogExecAndLog session log ogUpdatePartitionTable $dis +ogEcho session log "[50] $MSG_HELP_ogCreatePartitions" +ogEcho session log " ogCreatePartitions $dis ${TBP[@]}" +ogExecAndLog COMMAND ogCreatePartitions $dis ${TBP[@]} +if [ $? -ne 0 ]; then + kill $COPROC_PID + exit $(ogRaiseError session log $OG_ERR_GENERIC "ogCreatePartitions $dis ${TBP[@]}") +fi +ogExecAndLog COMMAND ogUpdatePartitionTable $dis -RETVAL=$? -if [ $RETVAL -ne 0 ]; then - kill $COPROC_PID - exit $RETVAL -fi +# Formatear particiones +ogEcho session log "[70] $MSG_HELP_ogFormat" -# Formatear particiones, excepto las marcadas como "EMPTY". for ((par=1; par<=$maxp; par++)); do - sfi="${TBF[par]}" - if [ "$sfi" != "EMPTY" ]; then - ogExecAndLog session log ogFormatFs $dis $par $sfi - RETVAL=$? - if [ $RETVAL -ne 0 ]; then - kill $COPROC_PID - exit $OG_ERR_PARTITION - fi - fi -done + case "${TBF[par]}" in + CACHE) # Si el tamaño es distinto ya se ha formateado. + if [ "$CACHESIZE" == $tch ]; then + ogEcho session log " ogFormatCache" + ogExecAndLog COMMAND ogFormatCache + fi + ;; + "") ;; + *) ogEcho session log " ogFormatFs $dis $par ${TBF[par]}" + ogExecAndLog COMMAND ogFormatFs $dis $par ${TBF[par]} + if [ $? -ne 0 ]; then + kill $COPROC_PID + exit $(ogRaiseError session log $OG_ERR_GENERIC "ogFormatFs $dis $par ${TBF[par]}"); + fi + ;; + esac +done +RETVAL=$? +# Registro de fin de ejecución +ogEcho log session "$MSG_INTERFACE_END $RETVAL" #___________________________________________________________________ # diff --git a/admin/Interface/EjecutarScript b/admin/Interface/EjecutarScript index 50b54a56..26453ed4 100755 --- a/admin/Interface/EjecutarScript +++ b/admin/Interface/EjecutarScript @@ -31,7 +31,8 @@ if [ $RETVAL == 0 ] then ogEcho log session "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" else - ogEcho log session "ERROR: operacion no realizada" + ogRaiseError log session $RETVAL + ogEcho log session error "Operacion no realizada" fi |