summaryrefslogtreecommitdiffstats
path: root/admin/Interface
diff options
context:
space:
mode:
Diffstat (limited to 'admin/Interface')
-rwxr-xr-xadmin/Interface/Configurar116
-rwxr-xr-xadmin/Interface/EjecutarScript3
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