summaryrefslogtreecommitdiffstats
path: root/client/engine/File.lib
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2010-06-24 10:41:41 +0000
committerramon <ramongomez@us.es>2010-06-24 10:41:41 +0000
commit9eefff4476b35ce59f6ffb6ebe73d4ac90368dd6 (patch)
treeb2bee31dba210c85c4ab9c2515742b036df474cf /client/engine/File.lib
parent36a4dfd93f1215bdc999d488e7154a79d3575118 (diff)
Nueva función {{{ogIsNewerFile}}}
git-svn-id: https://opengnsys.es/svn/trunk@1058 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/engine/File.lib')
-rwxr-xr-xclient/engine/File.lib60
1 files changed, 51 insertions, 9 deletions
diff --git a/client/engine/File.lib b/client/engine/File.lib
index 6156e6ed..5f1f142a 100755
--- a/client/engine/File.lib
+++ b/client/engine/File.lib
@@ -4,17 +4,17 @@
#@brief Librería o clase File
#@class File
#@brief Funciones para gestión de archivos y directorios.
-#@version 0.9
+#@version 0.9.2
#@warning License: GNU GPLv3+
#*/
#/**
# ogCopyFile [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target
-#@brief Metafunción para copiar un fichero de sistema OpenGNSys a un directorio OpenGNSys.
+#@brief Metafunción para copiar un fichero de sistema OpenGnSys a un directorio.
#@see ogGetPath
#@warning Deben existir tanto el fichero origen como el directorio destino.
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-10-20
#*/ ##
@@ -48,7 +48,7 @@ cp -p "$SOURCE" "$TARGET" # (definir posible error)
# ogDeleteFile [ str_repo | int_ndisk int_npartition ] path_filepath
#@brief Metafunción que borra un fichero de un dispositivo.
#@see ogGetPath
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-29
#*/ ##
@@ -67,7 +67,7 @@ rm -f "$FILE" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $?
# ogDeleteTree [ str_repo | int_ndisk int_npartition ] path_dirpath
#@brief Metafunción que borra todo un subárbol de directorios de un dispositivo.
#@see ogGetPath
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-29
#*/ ##
@@ -97,7 +97,7 @@ rm -fr "$DIR" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $?
#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
#@warning En caso de error, sólo devuelve el código y no da mensajes.
#@todo Terminar de definir parámetros para acceso a repositorios.
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-15
#*/ ##
@@ -157,7 +157,7 @@ cd $CURRENTDIR
# ogGetParentPath [ str_repo | int_ndisk int_npartition ] path_filepath
#@brief Metafunción que devuelve el camino del directorio padre.
#@see ogGetPath
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-29
#*/ ##
@@ -184,10 +184,52 @@ ogGetPath $PARENT
#/**
+# ogIsNewerFile [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target
+#@brief Metafunción que indica se un fichero es más nuevo que otro.
+#@see ogGetPath
+#@return int_code Código de salida
+#@warning Deben existir tanto el fichero origen como el destino.
+#@version 0.9.2 - Primera versión para OpenGnSys.
+#@author Ramon Gomez, ETSII Universidad de Sevilla
+#@date 2010-07-24
+#*/ ##
+function ogIsNewerFile ()
+{
+# Variables locales.
+local ARGS SOURCE TARGET
+# Si se solicita, mostrar ayuda.
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_source [ str_repo | int_ndisk int_npartition ] path_target" \
+ "if $FUNCNAME REPO ubuntu.img CACHE ubuntu.img; then ... fi"
+ return
+fi
+
+ARGS="$@"
+case "$1" in
+ /*) # Camino completo. */ (Comentrio Doxygen)
+ 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 que existen los ficheros origen y destino.
+[ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return $?
+TARGET=$(ogGetPath "$@")
+[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$@" || return $?
+# Devolver si el primer fichero se ha modificado después que el segundo.
+test "$SOURCE" -nt "$TARGET"
+}
+
+
+#/**
# ogMakeDir [ str_repo | int_ndisk int_npartition ] path_dirpath
#@brief Metafunción que crea un subdirectorio vacío en un dispositivo.
#@see ogGetParentPath
-#@version 0.9 - Pruebas con OpenGNSys.
+#@version 0.9 - Pruebas con OpenGnSys.
#@author Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-29
#*/ ##
@@ -215,7 +257,7 @@ mkdir -p "$PARENT/$DIR" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $?
#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
#@warning Primeras pruebas.
#@todo Terminar de definir parámetros para acceso a repositorios.
-#@version 0.1 - Primera adaptación para OpenGNSys.
+#@version 0.1 - Primera adaptaci³n para OpenGNSys.
#@author obtenido de ogGetPath de Ramon Gomez, ETSII Universidad de Sevilla
#@date 2009-09-15
#*/