summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xclient/engine/File.lib27
-rwxr-xr-xclient/nfsexport/scripts/restore-image.sh21
-rw-r--r--doc/opengnsys-logo.pngbin0 -> 10079 bytes
3 files changed, 34 insertions, 14 deletions
diff --git a/client/engine/File.lib b/client/engine/File.lib
index 22ef4649..8bee7358 100755
--- a/client/engine/File.lib
+++ b/client/engine/File.lib
@@ -10,18 +10,27 @@
##### PRUEBAS
-# ogGetPath [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target
+# ogCopyFile [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target
function ogCopyFile () {
-local SOURCE TARGET
+local ARGS SOURCE TARGET
+ARGS="$@"
case "$1" in
- /*) SOURCE=$(ogGetFile "$1") # */ (necesario Doxygen)
- shift ;;
- [1-9]*) SOURCE=$(ogGetFile "$1" "$2" "$3")
- shift 3 ;;
- *) SOURCE=$(ogGetFile "$1" "$2")
- shift 2 ;;
+ /*) # Camino completo.
+ SOURCE=$(ogGetPath "$1")
+ shift ;;
+ [1-9]*) # ndisco npartición.
+ SOURCE=$(ogGetPath "$1" "$2" "$3")
+ shift 3 ;;
+ *) # Otros: repo, cache, cdrom (no se permiten caminos relativos).
+ SOURCE=$(ogGetPath "$1" "$2")
+ shift 2 ;;
esac
-
+#/// Comprobar fichero origen y directorio destino.
+[ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return $?
+TARGET=$(ogGetPath "$@")
+[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$@" || return $?
+#/// Copiar fichero.
+cp "$SOURCE" "$TARGET" # (definir posible error)
}
diff --git a/client/nfsexport/scripts/restore-image.sh b/client/nfsexport/scripts/restore-image.sh
index 25814472..3cd44ab2 100755
--- a/client/nfsexport/scripts/restore-image.sh
+++ b/client/nfsexport/scripts/restore-image.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# restore-image.sh - Scirpt de ejemplo para restaurar una imagen.
+# Scirpt de ejemplo para restaurar una imagen.
# (puede usarse como base para el programa de restauración de imágenes usado por OpenGNSys Admin).
PROG="$(basename $0)"
@@ -9,13 +9,24 @@ if [ $# -ne 4 ]; then
fi
# Procesar parámetros de entrada
-IMGFILE=$(ogGetPath "$1" "$2.img") || exit $?
+if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
+ # Si la imagen no está en la caché, copiarla del repositorio.
+ IMGDIR=$(ogGetParentPath "$1" "$2") || exit $?
+ IMGFILE=$(ogGetPath "$1" "$2")
+ if [ -z "$IMGFILE" ]; then
+ echo "Copiando imagen \"$2\" del repositorio a caché local"
+ ogCopyFile "repo" "$2" "$IMGDIR" || exit $?
+ IMGFILE=$(ogGetPath "cache" "$2") || exit $?
+ fi
+else
+ IMGFILE=$(ogGetPath "$1" "$2") || exit $?
+fi
PART=$(ogDiskToDev "$3" "$4") || exit $?
-# Mostrar información.
-ogEcho info "$PROG: Origen=$PART, Destino=$IMGFILE"
+# Mostrar información.
+ogEcho info "$PROG: Origen=$IMGFILE, Destino=$PART"
# Restaurar la imagen.
-ogRestoreImage "$@" || exit $?
+ogRestoreImage "$1" "$2" "$3" "$4" || exit $?
# Restaurar tamaño.
ogExtendFs $1 $2
diff --git a/doc/opengnsys-logo.png b/doc/opengnsys-logo.png
new file mode 100644
index 00000000..e98a2dcd
--- /dev/null
+++ b/doc/opengnsys-logo.png
Binary files differ