diff options
author | ramon <ramongomez@us.es> | 2010-06-24 10:41:41 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2010-06-24 10:41:41 +0000 |
commit | 9eefff4476b35ce59f6ffb6ebe73d4ac90368dd6 (patch) | |
tree | b2bee31dba210c85c4ab9c2515742b036df474cf /client/engine/File.lib | |
parent | 36a4dfd93f1215bdc999d488e7154a79d3575118 (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-x | client/engine/File.lib | 60 |
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 #*/ |