summaryrefslogtreecommitdiffstats
path: root/repoman
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2014-10-30 11:35:08 +0000
committerramon <ramongomez@us.es>2014-10-30 11:35:08 +0000
commit99e251e68dfa1b745a676cdfce2254ba557f8bb0 (patch)
treecdf8595f9ff75151e67a39ddc5d527c5330dea7c /repoman
parent98cd714cd54a429036ed020a2b827a8dbac94dfa (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-xrepoman/bin/deleteimage90
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