diff options
author | ramon <ramongomez@us.es> | 2014-10-30 11:35:08 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2014-10-30 11:35:08 +0000 |
commit | 99e251e68dfa1b745a676cdfce2254ba557f8bb0 (patch) | |
tree | cdf8595f9ff75151e67a39ddc5d527c5330dea7c /repoman | |
parent | 98cd714cd54a429036ed020a2b827a8dbac94dfa (diff) |
#674: Script {{{deleteimage}}} detecta automáticamente el tipo de imagen que debe borrar.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4416 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'repoman')
-rwxr-xr-x | repoman/bin/deleteimage | 90 |
1 files changed, 36 insertions, 54 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage index 3807b841..6045a8d7 100755 --- a/repoman/bin/deleteimage +++ b/repoman/bin/deleteimage @@ -1,17 +1,19 @@ #!/bin/bash -# deleteimage [ -b | -r | -i ] str_image +# deleteimage [ -b | -r ] str_image #@file deleteimage #@brief Borra del repositorio los ficheros de una imagen. #@param -b Elimina también la copia de seguridad de la imagen (opcional). #@param -r Recupera la copia de seguridad de la imagen (opcional). -#@param -i Elimina imagen Incremental o Basica #@param str_image Nombre canónico de la imagen, sin extensión. #@version 1.0 - Versión inicial. #@date 2012-10-14 #@author Ramón Gómez, ETSII Univ. Sevilla -#@version 1.2 - Eliminar imagen incremental. +#@version 1.0.5 - Eliminar imagen incremental. #@date 2013-07-17 #@author Alberto García, Univ. Málaga +#@version 1.0.6 - Simplificar ejecución. +#@date 2014-10-29 +#@author Ramón Gómez, ETSII Univ. Sevilla PROG=$(basename $0) @@ -25,80 +27,60 @@ DIFFEXT="diff" if [ "$*" == "help" ]; then cat << EOT $PROG: Borra los ficheros de una imagen del repositorio. -Formato: $PROG [ -b | -r | -i | -d ] str_image +Formato: $PROG [ -b | -r ] str_image -b Elimina también la copia de seguridad de la imagen. -r Recupera la copia de seguridad de la imagen. - -i Elimina imagen Incremental o Basica - -d Elimina Directorios Ejemplo: $PROG imagen1 EOT exit 0 fi - # Procesar parámetros -while getopts brid OPTION; do +while getopts br OPTION; do case $OPTION in b) DELETEBACKUP=1 ;; r) RECOVERBACKUP=1 ;; - i) DELETEINCREMEN=1 ;; - d) DELETEDIRECTORIO=1 ;; *) ERR=1 ;; esac shift $((OPTIND-1)) done - -[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && [ -n "$DELETEINCREMEN" ] && [ -n "$DELETEDIRECTORIO" ] && ERR=1 +[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1 if [ $# != 1 -o -n "$ERR" ]; then - echo "$PROG Error: Formato: $PROG [ -b | -r | -i | -d ] str_image" + echo "$PROG Error: Formato: $PROG [ -b | -r ] str_image" exit 1 fi +# Eliminar ficheros de imagen monolítica o sincronizada básica. +IMGPATH="$OGIMG/$1.$IMGEXT" +if [ -f $IMGPATH ]; then + echo "Borrando fichero $PATHDIR" + rm -f $IMGPATH && rm -f $IMGPATH.{sum,torrent} +else + # Eliminar ficheros de imagen sincronizada diferencial. + IMGPATH="$OGIMG/$1.$IMGEXT.$DIFFEXT" + if [ -f $IMGPATH ]; then + echo "Borrando fichero $PATHDIR" + rm -f $IMGPATH && rm -f $IMGPATH.{sum,torrent} + else + # Eliminar directorio de imagen sincronizada. + IMGPATH="$OGIMG/$1" + if [ -d $IMGPATH ]; then + echo "Borrando directorio $PATHDIR" + rm -fr $IMGPATH + fi + fi +fi + # Recuperar copia de seguridad de la imagen. if [ -n "$RECOVERBACKUP" ]; then - mv -f $IMGFILE.$BAKEXT $IMGFILE && \ - (mv -f $IMGFILE.sum.$BAKEXT $IMGFILE.sum 2>/dev/null - mv -f $IMGFILE.torrent.$BAKEXT $IMGFILE.torrent 2>/dev/null) + [ -e $IMGPATH.$BAKEXT ] && echo "Recuperando copia $IMGPATH.$BAKEXT" + mv -f $IMGPATH.$BAKEXT $IMGPATH && \ + (mv -f $IMGPATH.sum.$BAKEXT $IMGPATH.sum 2>/dev/null + mv -f $IMGPATH.torrent.$BAKEXT $IMGPATH.torrent 2>/dev/null) fi # Borrar copia de seguridad de la imagen. if [ -n "$DELETEBACKUP" ]; then - rm -f $IMGFILE.$BAKEXT && rm -f $IMGFILE.{sum,torrent}.$BAKEXT + [ -e $IMGPATH ] && echo "Eliminando copia $IMGPATH.$BAKEXT" + rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,torrent}.$BAKEXT fi -# Borrar directorio de imagen -IMGFILECA="$OGIMG/$1" -if [ -n "$DELETEINCREMEN" ];then -rm -R $IMGFILECA && exit -fi - -# Si el Nombre canonico es un directorio eliminamos -# o si la opcion es i tambien eliminamos -IMGFILECA="$OGIMG/$1" -if [ -n "$DELETEDIRECTORIO" ]; then -rm -R $IMGFILECA && exit - -# Si el Nomobre canonico NO es un directorio -else - # Comprobamos si es un archivo backup .ant - NOMBREANT=$(echo $1 | awk -F. '{print $1}') - if [ $1 == "$NOMBREANT.$BAKEXT" ]; then - IMGFILE="$OGIMG/$NOMBREANT.$IMGEXT.$BAKEXT" - # Eliminar fichero de seguridad .img.ant - rm -f $IMGFILE - else - # Comprobamos si es un archivo diferencial .diff - NOMBREDIF="$OGIMG/$1.$IMGEXT.$DIFFEXT" - if [ -f $NOMBREDIF ]; then - IMGFILE="$OGIMG/$1.$IMGEXT.$DIFFEXT" - # Eliminar fichero diferencial .diff .torrent .sum - rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} - - else - # Fichero principal de la imagen. - IMGFILE="$OGIMG/$1.$IMGEXT" - # Eliminar ficheros de la imagen. - rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} - fi - fi - -fi
\ No newline at end of file |