[4c63eb9] | 1 | #!/bin/bash |
---|
| 2 | #/** |
---|
| 3 | #@file File.lib |
---|
| 4 | #@brief Librería o clase File |
---|
| 5 | #@class File |
---|
| 6 | #@brief Funciones para gestión de archivos y directorios. |
---|
[acf04d3] | 7 | #@version 1.0.4 |
---|
[4c63eb9] | 8 | #@warning License: GNU GPLv3+ |
---|
| 9 | #*/ |
---|
| 10 | |
---|
| 11 | |
---|
[55ad138c] | 12 | #/** |
---|
[95e48e1] | 13 | # ogCalculateChecksum [ str_repo | int_ndisk int_npart ] path_filepath |
---|
| 14 | #@brief Devuelve la suma de comprobación (checksum) de un fichero. |
---|
| 15 | #@param path_filepath camino del fichero (independiente de mayúsculas) |
---|
| 16 | #@param str_repo repositorio de ficheros |
---|
| 17 | #@param int_ndisk nº de orden del disco |
---|
| 18 | #@param int_npartition nº de orden de la partición |
---|
| 19 | #@return hex_checksum Checksum del fichero |
---|
| 20 | #@version 0.9.2 - Primera versión para OpenGnSys. |
---|
| 21 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 22 | #@date 2010-07-24 |
---|
[12e8e382] | 23 | #@version 1.0.4 - Calcula solo el checksum del último MB del fichero. |
---|
| 24 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 25 | #@date 2012-03-16 |
---|
[95e48e1] | 26 | #*/ ## |
---|
| 27 | function ogCalculateChecksum () |
---|
| 28 | { |
---|
| 29 | # Variables locales. |
---|
| 30 | local FILE |
---|
| 31 | if [ "$*" == "help" ]; then |
---|
| 32 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_filepath" \ |
---|
[cbbb046] | 33 | "$FUNCNAME REPO ubuntu.img ==> ef899299caf8b517ce36f1157a93d8bf" |
---|
[95e48e1] | 34 | return |
---|
| 35 | fi |
---|
| 36 | |
---|
| 37 | # Comprobar que existe el fichero y devolver sus datos. |
---|
| 38 | FILE=$(ogGetPath "$@") |
---|
| 39 | [ -n "$FILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
[12e8e382] | 40 | tail -c1M "$FILE" | md5sum -b 2>&1 | cut -f1 -d" " |
---|
[95e48e1] | 41 | } |
---|
| 42 | |
---|
| 43 | |
---|
| 44 | #/** |
---|
| 45 | # ogCompareChecksumFiles [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target |
---|
| 46 | #@brief Metafunción que compara las sumas de comprobación almacenadas de 2 ficheros. |
---|
| 47 | #@return bool_compare Valor de comparación. |
---|
| 48 | #@warning No es necesario especificar la extensión ".sum". |
---|
| 49 | #@version 0.9.2 - Primera versión para OpenGnSys. |
---|
| 50 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 51 | #@date 2010-07-24 |
---|
| 52 | #*/ ## |
---|
| 53 | function ogCompareChecksumFiles () |
---|
| 54 | { |
---|
| 55 | # Variables locales. |
---|
| 56 | local ARGS SOURCE TARGET |
---|
| 57 | if [ "$*" == "help" ]; then |
---|
| 58 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_filepath" \ |
---|
[cbbb046] | 59 | "if $FUNCNAME REPO ubuntu.img CACHE ubuntu.img; then ...; fi" |
---|
[95e48e1] | 60 | return |
---|
| 61 | fi |
---|
| 62 | |
---|
| 63 | ARGS="$@" |
---|
| 64 | case "$1" in |
---|
| 65 | /*) # Camino completo. */ (Comentrio Doxygen) |
---|
| 66 | SOURCE=$(ogGetPath "$1") |
---|
| 67 | shift ;; |
---|
| 68 | [1-9]*) # ndisco npartición. |
---|
| 69 | SOURCE=$(ogGetPath "$1" "$2" "$3") |
---|
| 70 | shift 3 ;; |
---|
| 71 | *) # Otros: repo, cache, cdrom (no se permiten caminos relativos). |
---|
| 72 | SOURCE=$(ogGetPath "$1" "$2") |
---|
| 73 | shift 2 ;; |
---|
| 74 | esac |
---|
| 75 | TARGET=$(ogGetPath "$@") |
---|
| 76 | |
---|
| 77 | # Comparar los ficheros de checksum. |
---|
| 78 | test "$(cat "$SOURCE.sum" 2>/dev/null)" == "$(cat "$TARGET.sum" 2>/dev/null)" |
---|
| 79 | } |
---|
| 80 | |
---|
| 81 | |
---|
| 82 | #/** |
---|
[e42f34e] | 83 | # ogCopyFile [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target |
---|
[9eefff4] | 84 | #@brief Metafunción para copiar un fichero de sistema OpenGnSys a un directorio. |
---|
[55ad138c] | 85 | #@see ogGetPath |
---|
[acf04d3] | 86 | #@return Progreso de la copia. |
---|
[55ad138c] | 87 | #@warning Deben existir tanto el fichero origen como el directorio destino. |
---|
[9eefff4] | 88 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[55ad138c] | 89 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 90 | #@date 2009-10-20 |
---|
[acf04d3] | 91 | #@version 1.0.4 - Copiar usando rsync. |
---|
| 92 | #@author Universidad de Huelva |
---|
| 93 | #@date 2012-07-06 |
---|
[1e7eaab] | 94 | #*/ ## |
---|
[42669ebf] | 95 | function ogCopyFile () |
---|
| 96 | { |
---|
[55ad138c] | 97 | # Variables locales. |
---|
[e42f34e] | 98 | local ARGS SOURCE TARGET |
---|
[cbbb046] | 99 | if [ "$*" == "help" ]; then |
---|
| 100 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_source [ str_repo | int_ndisk int_npartition ] path_target" \ |
---|
| 101 | "$FUNCNAME REPO newfile.txt 1 2 /tmp/newfile.txt" |
---|
| 102 | return |
---|
| 103 | fi |
---|
[55ad138c] | 104 | |
---|
[e42f34e] | 105 | ARGS="$@" |
---|
[c40a6b4] | 106 | case "$1" in |
---|
[1e7eaab] | 107 | /*) # Camino completo. */ (Comentrio Doxygen) |
---|
[3915005] | 108 | SOURCE="$(ogGetPath "$1")" |
---|
[e42f34e] | 109 | shift ;; |
---|
| 110 | [1-9]*) # ndisco npartición. |
---|
[3915005] | 111 | SOURCE="$(ogGetPath "$1" "$2" "$3")" |
---|
[e42f34e] | 112 | shift 3 ;; |
---|
| 113 | *) # Otros: repo, cache, cdrom (no se permiten caminos relativos). |
---|
[3915005] | 114 | SOURCE="$(ogGetPath "$1" "$2")" |
---|
[e42f34e] | 115 | shift 2 ;; |
---|
[c40a6b4] | 116 | esac |
---|
[1e7eaab] | 117 | # Comprobar fichero origen y directorio destino. |
---|
[e42f34e] | 118 | [ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return $? |
---|
[3915005] | 119 | TARGET="$(ogGetPath "$@")" |
---|
[9965062] | 120 | [ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
[a14f9e0] | 121 | # Copiar fichero (para evitar problemas de comunicaciones las copias se hacen con rsync en vez de cp). |
---|
[16ec9e4] | 122 | rsync --progress --inplace -avh "$SOURCE" "$TARGET" |
---|
[c40a6b4] | 123 | } |
---|
| 124 | |
---|
| 125 | |
---|
[4c63eb9] | 126 | #/** |
---|
[c7d9af7] | 127 | # ogDeleteFile [ str_repo | int_ndisk int_npartition ] path_filepath |
---|
| 128 | #@brief Metafunción que borra un fichero de un dispositivo. |
---|
| 129 | #@see ogGetPath |
---|
[9eefff4] | 130 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[c7d9af7] | 131 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 132 | #@date 2009-09-29 |
---|
[1e7eaab] | 133 | #*/ ## |
---|
[42669ebf] | 134 | function ogDeleteFile () |
---|
| 135 | { |
---|
[c7d9af7] | 136 | # Variables locales. |
---|
| 137 | local FILE |
---|
[cbbb046] | 138 | if [ "$*" == "help" ]; then |
---|
| 139 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_file" \ |
---|
| 140 | "$FUNCNAME 1 2 /tmp/newfile.txt" |
---|
| 141 | return |
---|
| 142 | fi |
---|
| 143 | |
---|
[1e7eaab] | 144 | # Comprobar que existe el fichero y borrarlo. |
---|
[3915005] | 145 | FILE="$(ogGetPath "$@")" |
---|
[a3fb8b2] | 146 | [ -n "$FILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
| 147 | rm -f "$FILE" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
[c7d9af7] | 148 | } |
---|
| 149 | |
---|
| 150 | |
---|
| 151 | #/** |
---|
[3543b3e] | 152 | # ogDeleteTree [ str_repo | int_ndisk int_npartition ] path_dirpath |
---|
| 153 | #@brief Metafunción que borra todo un subárbol de directorios de un dispositivo. |
---|
| 154 | #@see ogGetPath |
---|
[9eefff4] | 155 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[3543b3e] | 156 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 157 | #@date 2009-09-29 |
---|
[1e7eaab] | 158 | #*/ ## |
---|
[42669ebf] | 159 | function ogDeleteTree () |
---|
| 160 | { |
---|
[c7d9af7] | 161 | # Variables locales. |
---|
[3543b3e] | 162 | local DIR |
---|
[cbbb046] | 163 | if [ "$*" == "help" ]; then |
---|
| 164 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_dir" \ |
---|
| 165 | "$FUNCNAME 1 2 /tmp/newdir" |
---|
| 166 | return |
---|
| 167 | fi |
---|
| 168 | |
---|
[1e7eaab] | 169 | # Comprobar que existe el directorio y borrarlo con su contenido. |
---|
[3915005] | 170 | DIR="$(ogGetPath "$@")" |
---|
[a3fb8b2] | 171 | [ -n "$DIR" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
| 172 | rm -fr "$DIR" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
[3543b3e] | 173 | } |
---|
| 174 | |
---|
| 175 | |
---|
| 176 | #/** |
---|
[1d531f9] | 177 | # ogGetPath [ str_repo | int_ndisk int_npartition ] path_filepath |
---|
[4c63eb9] | 178 | #@brief Inicia el proceso de arranque de un sistema de archivos. |
---|
[42669ebf] | 179 | #@param path_filepath camino del fichero (independiente de mayúsculas) |
---|
| 180 | #@param str_repo repositorio de ficheros |
---|
| 181 | #@param int_ndisk nº de orden del disco |
---|
| 182 | #@param int_npartition nº de orden de la partición |
---|
[4c63eb9] | 183 | #@return path_file - camino completo real del fichero. |
---|
[55ad138c] | 184 | #@note repo = { REPO, CACHE, CDROM } |
---|
[1d531f9] | 185 | #@note Requisitos: \c grep \c sed |
---|
[4c63eb9] | 186 | #@exception OG_ERR_FORMAT Formato incorrecto. |
---|
[ebf06c7] | 187 | #@exception OG_ERR_NOTFOUND Fichero o dispositivo no encontrado. |
---|
[4c63eb9] | 188 | #@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar. |
---|
[cfeabbf] | 189 | #@warning En caso de error, sólo devuelve el código y no da mensajes. |
---|
[4c63eb9] | 190 | #@todo Terminar de definir parámetros para acceso a repositorios. |
---|
[985bef0] | 191 | #@version 0.1 - Integracion para Opengnsys - HIDRA: CaminoWindows.sh; EAC: GetPath(), FormatSintaxSpacePath(), FormatSintaxBackSlashPath (), en FileSystem.lib |
---|
| 192 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 193 | #@Date 2008/10/10 |
---|
| 194 | #@author Antonio J. Doblas Viso. Universidad de Malaga |
---|
| 195 | #@date 2008/10/27 |
---|
[9eefff4] | 196 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[4c63eb9] | 197 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 198 | #@date 2009-09-15 |
---|
[1e7eaab] | 199 | #*/ ## |
---|
[42669ebf] | 200 | function ogGetPath () |
---|
| 201 | { |
---|
[4c63eb9] | 202 | # Variables locales. |
---|
| 203 | local MNTDIR FILE PREVFILE FILEPATH CURRENTDIR |
---|
| 204 | |
---|
[1e7eaab] | 205 | # Si se solicita, mostrar ayuda. |
---|
[4c63eb9] | 206 | if [ "$*" == "help" ]; then |
---|
[4edc0b0] | 207 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_filepath" \ |
---|
[d071d9b] | 208 | "$FUNCNAME \"/mnt/sda1/windows/system32\" ==> /mnt/sda1/WINDOWS/System32" \ |
---|
| 209 | "$FUNCNAME REPO /etc/fstab ==> /opt/opengnsys/images/etc/fstab" \ |
---|
[4c63eb9] | 210 | "$FUNCNAME 1 1 \"/windows/system32\" ==> /mnt/sda1/WINDOWS/System32" |
---|
| 211 | return |
---|
| 212 | fi |
---|
| 213 | |
---|
[1e7eaab] | 214 | # Procesar camino según el número de parámetros. |
---|
[4c63eb9] | 215 | case $# in |
---|
[9139a5f] | 216 | 1) FILE="$1" ;; |
---|
[1a42974] | 217 | 2) case "${1^^}" in |
---|
[c82725c] | 218 | REPO) |
---|
[39277f4] | 219 | FILE="$OGIMG/$2" ;; |
---|
[c82725c] | 220 | CACHE) |
---|
| 221 | MNTDIR="$(ogMountCache)" || return $? |
---|
| 222 | FILE="$MNTDIR/$OGIMG/$2" ;; |
---|
| 223 | CDROM) |
---|
| 224 | MNTDIR="$(ogMountCdrom)" || return $? |
---|
| 225 | FILE="$MNTDIR/$2" ;; |
---|
[39277f4] | 226 | *) ogRaiseError $OG_ERR_FORMAT |
---|
| 227 | return $? ;; |
---|
[a2336d6] | 228 | esac ;; |
---|
[9139a5f] | 229 | 3) MNTDIR="$(ogMount $1 $2)" || return $? |
---|
| 230 | FILE="$MNTDIR/$3" ;; |
---|
| 231 | *) ogRaiseError $OG_ERR_FORMAT |
---|
[c40a6b4] | 232 | return $? ;; |
---|
[4c63eb9] | 233 | esac |
---|
| 234 | |
---|
[ad051cc] | 235 | # Volver a directorio inicial en caso de error. |
---|
[4c63eb9] | 236 | CURRENTDIR="$PWD" |
---|
[ad051cc] | 237 | trap "cd $CURRENTDIR" RETURN |
---|
| 238 | |
---|
| 239 | # Eliminar caracteres \c / iniciales, finales y duplicados. |
---|
[1e7eaab] | 240 | # /* (comentario Doxygen) |
---|
[4c63eb9] | 241 | FILE="$(echo $FILE|sed -e 's/\(\/\)*\1/\//g' -e 's/^\///' -e 's/\/$//')" |
---|
| 242 | PREVFILE="" |
---|
| 243 | FILEPATH="/" |
---|
| 244 | while [ "$FILE" != "$PREVFILE" ]; do |
---|
[1e7eaab] | 245 | # Busca el nombre correcto en el directorio actual. |
---|
[df1ffe5] | 246 | cd "$FILEPATH" 2>/dev/null || FILE="" |
---|
| 247 | FILEPATH="${FILEPATH}/$(ls -A 2>/dev/null | grep -i -m1 "^${FILE%%/*}$")" || return $? |
---|
[4c63eb9] | 248 | PREVFILE="$FILE" |
---|
| 249 | FILE="${FILE#*/}" |
---|
| 250 | done |
---|
[1e7eaab] | 251 | # (comentario Doxygen) */ |
---|
| 252 | # Muestra el camino Linux, quitando el / inicial duplicado. |
---|
[4c63eb9] | 253 | [ "$FILEPATH" != "/" ] && echo ${FILEPATH#/} |
---|
| 254 | } |
---|
| 255 | |
---|
[a2336d6] | 256 | |
---|
[23c6c40] | 257 | #/** |
---|
| 258 | # ogGetParentPath [ str_repo | int_ndisk int_npartition ] path_filepath |
---|
| 259 | #@brief Metafunción que devuelve el camino del directorio padre. |
---|
| 260 | #@see ogGetPath |
---|
[9eefff4] | 261 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[23c6c40] | 262 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 263 | #@date 2009-09-29 |
---|
[1e7eaab] | 264 | #*/ ## |
---|
[42669ebf] | 265 | function ogGetParentPath () |
---|
| 266 | { |
---|
[ebf06c7] | 267 | local PARENT |
---|
[4edc0b0] | 268 | if [ "$*" == "help" ]; then |
---|
| 269 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_filepath" \ |
---|
| 270 | "$FUNCNAME \"/mnt/sda1/windows/system32\" ==> /mnt/sda1/WINDOWS" \ |
---|
| 271 | "$FUNCNAME REPO /etc/fstab ==> /opt/opengnsys/images/etc" \ |
---|
| 272 | "$FUNCNAME 1 1 \"/windows/system32\" ==> /mnt/sda1/WINDOWS" |
---|
| 273 | return |
---|
| 274 | fi |
---|
| 275 | |
---|
[ebf06c7] | 276 | case $# in |
---|
[3915005] | 277 | 1) PARENT="$(dirname "$1")" ;; |
---|
[a3fb8b2] | 278 | 2) PARENT="$1 $(dirname "/$2")" ;; |
---|
| 279 | 3) PARENT="$1 $2 $(dirname "/$3")" ;; |
---|
[ebf06c7] | 280 | *) ogRaiseError $OG_ERR_FORMAT |
---|
[cfeabbf] | 281 | return $? ;; |
---|
[ebf06c7] | 282 | esac |
---|
[f81a4deb] | 283 | ogGetPath $PARENT |
---|
[ebf06c7] | 284 | } |
---|
| 285 | |
---|
| 286 | |
---|
[23c6c40] | 287 | #/** |
---|
[9eefff4] | 288 | # ogIsNewerFile [ str_repo | int_ndisk int_npart ] path_source [ str_repo | int_ndisk int_npart ] path_target |
---|
| 289 | #@brief Metafunción que indica se un fichero es más nuevo que otro. |
---|
| 290 | #@see ogGetPath |
---|
[7685100] | 291 | #@return Código de salida: 0 - nuevo, 1 - antiguo o error |
---|
[9eefff4] | 292 | #@warning Deben existir tanto el fichero origen como el destino. |
---|
| 293 | #@version 0.9.2 - Primera versión para OpenGnSys. |
---|
| 294 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 295 | #@date 2010-07-24 |
---|
[7685100] | 296 | #@version 1.0.1 - Devolver falso en caso de error. |
---|
| 297 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 298 | #@date 2011-05-18 |
---|
[9eefff4] | 299 | #*/ ## |
---|
| 300 | function ogIsNewerFile () |
---|
| 301 | { |
---|
| 302 | # Variables locales. |
---|
| 303 | local ARGS SOURCE TARGET |
---|
| 304 | # Si se solicita, mostrar ayuda. |
---|
| 305 | if [ "$*" == "help" ]; then |
---|
| 306 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_source [ str_repo | int_ndisk int_npartition ] path_target" \ |
---|
| 307 | "if $FUNCNAME REPO ubuntu.img CACHE ubuntu.img; then ... fi" |
---|
| 308 | return |
---|
| 309 | fi |
---|
| 310 | |
---|
| 311 | ARGS="$@" |
---|
| 312 | case "$1" in |
---|
| 313 | /*) # Camino completo. */ (Comentrio Doxygen) |
---|
[3915005] | 314 | SOURCE="$(ogGetPath "$1")" |
---|
[9eefff4] | 315 | shift ;; |
---|
| 316 | [1-9]*) # ndisco npartición. |
---|
[3915005] | 317 | SOURCE="$(ogGetPath "$1" "$2" "$3")" |
---|
[9eefff4] | 318 | shift 3 ;; |
---|
| 319 | *) # Otros: repo, cache, cdrom (no se permiten caminos relativos). |
---|
[3915005] | 320 | SOURCE="$(ogGetPath "$1" "$2")" |
---|
[9eefff4] | 321 | shift 2 ;; |
---|
| 322 | esac |
---|
| 323 | # Comprobar que existen los ficheros origen y destino. |
---|
[7685100] | 324 | [ -n "$SOURCE" ] || ogRaiseError $OG_ERR_NOTFOUND "${ARGS% $*}" || return 1 |
---|
[9eefff4] | 325 | TARGET=$(ogGetPath "$@") |
---|
[9965062] | 326 | [ -n "$TARGET" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return 1 |
---|
[9eefff4] | 327 | # Devolver si el primer fichero se ha modificado después que el segundo. |
---|
| 328 | test "$SOURCE" -nt "$TARGET" |
---|
| 329 | } |
---|
| 330 | |
---|
| 331 | |
---|
| 332 | #/** |
---|
[95e48e1] | 333 | # ogMakeChecksumFile [ str_repo | int_ndisk int_npart ] path_filepath |
---|
| 334 | #@brief Metafunción que guarda el valor de comprobación de un fichero. |
---|
| 335 | #@see ogCalculateChecksum |
---|
| 336 | #@warning Genera un fichero con extensión ".sum". |
---|
| 337 | #@version 0.9.2 - Primera versión para OpenGnSys. |
---|
| 338 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 339 | #@date 2010-07-24 |
---|
| 340 | #*/ ## |
---|
| 341 | function ogMakeChecksumFile () |
---|
| 342 | { |
---|
| 343 | # Variables locales. |
---|
[3915005] | 344 | local FILE |
---|
[95e48e1] | 345 | if [ "$*" == "help" ]; then |
---|
| 346 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_filepath" \ |
---|
| 347 | "$FUNCNAME REPO ubuntu.img" |
---|
| 348 | return |
---|
| 349 | fi |
---|
| 350 | |
---|
| 351 | # Comprobar que existe el fichero y guardar su checksum. |
---|
[3915005] | 352 | FILE="$(ogGetPath "$@")" |
---|
[95e48e1] | 353 | [ -n "$FILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
| 354 | ogCalculateChecksum "$FILE" > "$FILE.sum" |
---|
| 355 | } |
---|
| 356 | |
---|
| 357 | |
---|
| 358 | #/** |
---|
[23c6c40] | 359 | # ogMakeDir [ str_repo | int_ndisk int_npartition ] path_dirpath |
---|
| 360 | #@brief Metafunción que crea un subdirectorio vacío en un dispositivo. |
---|
| 361 | #@see ogGetParentPath |
---|
[985bef0] | 362 | #@version 0.1 - Integracion para Opengnsys - HIDRA: CrearDirectorio.sh, EAC: MkdirPath() en FileSystem.lib |
---|
| 363 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 364 | #@Date 2008/10/10 |
---|
| 365 | #@author Antonio J. Doblas Viso. Universidad de Malaga |
---|
| 366 | #@date 2008/10/27 |
---|
[9eefff4] | 367 | #@version 0.9 - Pruebas con OpenGnSys. |
---|
[23c6c40] | 368 | #@author Ramon Gomez, ETSII Universidad de Sevilla |
---|
| 369 | #@date 2009-09-29 |
---|
[1e7eaab] | 370 | #*/ ## |
---|
[42669ebf] | 371 | function ogMakeDir () |
---|
| 372 | { |
---|
[ebf06c7] | 373 | local PARENT DIR |
---|
[cbbb046] | 374 | if [ "$*" == "help" ]; then |
---|
| 375 | ogHelp "$FUNCNAME" "$FUNCNAME [ str_repo | int_ndisk int_npartition ] path_dir" \ |
---|
| 376 | "$FUNCNAME 1 2 /tmp/newdir" |
---|
| 377 | return |
---|
| 378 | fi |
---|
| 379 | |
---|
[3915005] | 380 | PARENT="$(ogGetParentPath "$@")" || return $? |
---|
[23c6c40] | 381 | DIR="$(basename "${!#}")" |
---|
[a3fb8b2] | 382 | mkdir -p "$PARENT/$DIR" || ogRaiseError $OG_ERR_NOTFOUND "$*" || return $? |
---|
[ebf06c7] | 383 | } |
---|
| 384 | |
---|