summaryrefslogtreecommitdiffstats
path: root/client/engine/File.lib
diff options
context:
space:
mode:
Diffstat (limited to 'client/engine/File.lib')
-rwxr-xr-xclient/engine/File.lib89
1 files changed, 17 insertions, 72 deletions
diff --git a/client/engine/File.lib b/client/engine/File.lib
index ea3956e6..e602b64d 100755
--- a/client/engine/File.lib
+++ b/client/engine/File.lib
@@ -117,9 +117,9 @@ esac
# Comprobar fichero origen y directorio destino.
[ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return $?
TARGET="$(ogGetPath "$@")"
-[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$@" || return $?
+[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $?
# Copiar fichero (para evitar problemas de comunicaciones las copias se hacen con rsync en vez de cp).
-rsync --progress -avh "$SOURCE" "$TARGET"
+rsync --progress --inplace -avh "$SOURCE" "$TARGET"
}
@@ -213,19 +213,22 @@ fi
# Procesar camino según el número de parámetros.
case $# in
- 1) FILE="$1" ;;
- 2) case "$1" in
- REPO|repo)
+ 1) FILE="$1" ;;
+ 2) case "${1^^}" in
+ REPO)
FILE="$OGIMG/$2" ;;
- CACHE|cache)
- FILE="$(ogMountCache)/$OGIMG/$2" ;;
- CDROM|cdrom)
- FILE="$(ogMountCdrom)/$2" ;;
+ CACHE)
+ MNTDIR="$(ogMountCache)" || return $?
+ FILE="$MNTDIR/$OGIMG/$2" ;;
+ CDROM)
+ MNTDIR="$(ogMountCdrom)" || return $?
+ FILE="$MNTDIR/$2" ;;
*) ogRaiseError $OG_ERR_FORMAT
return $? ;;
esac ;;
- 3) FILE="$(ogMount $1 $2)/$3" ;;
- *) ogRaiseError $OG_ERR_FORMAT
+ 3) MNTDIR="$(ogMount $1 $2)" || return $?
+ FILE="$MNTDIR/$3" ;;
+ *) ogRaiseError $OG_ERR_FORMAT
return $? ;;
esac
@@ -237,8 +240,8 @@ PREVFILE=""
FILEPATH="/"
while [ "$FILE" != "$PREVFILE" ]; do
# Busca el nombre correcto en el directorio actual.
- cd "$FILEPATH"
- FILEPATH="${FILEPATH}/$(ls -A | grep -i -m1 "^${FILE%%/*}$")" || return $?
+ cd "$FILEPATH" 2>/dev/null || FILE=""
+ FILEPATH="${FILEPATH}/$(ls -A 2>/dev/null | grep -i -m1 "^${FILE%%/*}$")" || return $?
PREVFILE="$FILE"
FILE="${FILE#*/}"
done
@@ -318,7 +321,7 @@ esac
# Comprobar que existen los ficheros origen y destino.
[ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return 1
TARGET=$(ogGetPath "$@")
-[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$@" || return 1
+[ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return 1
# Devolver si el primer fichero se ha modificado después que el segundo.
test "$SOURCE" -nt "$TARGET"
}
@@ -377,61 +380,3 @@ DIR="$(basename "${!#}")"
mkdir -p "$PARENT/$DIR" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $?
}
-
-#/**
-# ogNewPath [ str_repo | int_ndisk int_npartition ] path_filepath
-#@brief Crea el directorio especificado
-#@param path_filepath camino del fichero (independiente de mayúsculas)
-#@param str_repo repositorio de ficheros
-#@param int_ndisk nº de orden del disco
-#@param int_npartition nº de orden de la partición
-#@return file - camino completo real del directorio creado
-#@note repo = { REPO, CACHE }
-#@note Requisitos: \c grep \c sed
-#@exception OG_ERR_FORMAT Formato incorrecto.
-#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
-#@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.
-#@author obtenido de ogGetPath de Ramon Gomez, ETSII Universidad de Sevilla
-#@date 2009-09-15
-#*/
-function ogNewPath ()
-{
-# Variables locales.
-local MNTDIR FILE PREVFILE FILEPATH CURRENTDIR
-
-#/// Si se solicita, mostrar ayuda.
-if [ "$*" == "help" ]; then
- ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk int_npartition" \
- "$FUNCNAME \"/mnt/sda1/windows/system32\" ==> /mnt/sda1/WINDOWS/System32" \
- "$FUNCNAME REPO /etc/fstab ==> /opt/opengnsys/images/etc/fstab" \
- "$FUNCNAME 1 1 \"/windows/system32\" ==> /mnt/sda1/WINDOWS/System32"
- return
-fi
-
-#/// Procesar camino según el número de parámetros.
-case $# in
- # si 1 parametro directorio-fichero completo.
- 1) FILE="$1" ;;
- # Si 2 parametros es REPOSITORIO DIRECTORIO-FICHERO
- 2) case "$1" in
- # consultando servidor repositorio base
- REPO | $IPREPOMAN ) FILE="$OGIMG/$2" || return $OG_ERR_NOTFOUND ;;
- # consultando particion auxiliar cache local
- CACHE | $IP )
- ogMountCache >> /dev/null && FILE="$OGCAC/$OGIMG/$2" || return $OG_ERR_NOTFOUND ;;
- # conectando con Servidor Axuliar.
- *) ogRaiseError $OG_ERR_FORMAT
- return $? ;;
- esac ;;
- # Si 3 parametros DISK PARTITION DIRECTORIO-FICHERO
- 3) FILE="$(ogMount $1 $2)/$3" || return $OG_ERR_NOTFOUND ;;
- *) return $OG_ERR_FORMAT ;;
-esac
-
-mkdir -p ${FILE}
-echo $FILE
-}
-