diff options
Diffstat (limited to 'repoman/bin/deleteimage')
-rwxr-xr-x | repoman/bin/deleteimage | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage new file mode 100755 index 00000000..3f060ed4 --- /dev/null +++ b/repoman/bin/deleteimage @@ -0,0 +1,62 @@ +#!/bin/bash +# 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 str_image Nombre canónico de la imagen, sin extensión. +#@version 1.0 +#@date 2012-10-14 +#@author Ramón Gómez, ETSII Univ. Sevilla + + +PROG=$(basename $0) +OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} +OGIMG=$OPENGNSYS/images +IMGEXT="img" +BAKEXT="ant" + +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + cat << EOT +$PROG: Borra los ficheros de una imagen del repositorio. +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. +Ejemplo: $PROG imagen1 +EOT + exit 0 +fi +# Procesar parámetros +while getopts dr OPTION; do + case $OPTION in + b) DELETEBACKUP=1 ;; + r) RECOVERBACKUP=1 ;; + *) ERR=1 ;; + esac + shift $((OPTIND-1)) +done +[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1 +if [ $# != 1 -o -n "$ERR" ]; then + echo "$PROG Error: Formato: $PROG [ -b | -r ] str_image" + exit 1 +fi + +# Fichero principal de la imagen. +IMGFILE="$OGIMG/$1.$IMGEXT" + +# Eliminar ficheros de la imagen. +rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} + +# 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) +fi + +# Borrar copia de seguridad de la imagen. +if [ -n "$DELETEBACKUP" ]; then + rm -f $IMGFILE.$BAKEXT && rm -f $IMGFILE.{sum,torrent}.$BAKEXT +fi + |