source: repoman/bin/deleteimage @ eeade34

v1.2.0
Last change on this file since eeade34 was 01f4ee0, checked in by Ramón M. Gómez <ramongomez@…>, 5 years ago

#882: Remove directory-based image.

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash
2#         deleteimage [ -b | -r ] [ str_image | str_dir/str_image ]
3#@file    deleteimage
4#@brief   Borra del repositorio los ficheros de una imagen.
5#@param   -b           Elimina también la copia de seguridad de la imagen (opcional).
6#@param   -r           Recupera la copia de seguridad de la imagen (opcional).
7#@param   str_image    Nombre canónico de la imagen, sin extensión. Permite directorio.
8#@exception 1 Error de formato
9#@version 1.0 - Versión inicial.
10#@date    2012-10-14
11#@author  Ramón Gómez, ETSII Univ. Sevilla
12#@version 1.0.5 - Eliminar imagen incremental.
13#@date    2013-07-17
14#@author  Alberto García, Univ. Málaga
15#@version 1.0.6 - Detección automática del tipo de imagen.
16#@date    2014-10-29
17#@author  Ramón Gómez, ETSII Univ. Sevilla
18#@version 1.1.0 - Aunque no exista imagen permite recuperar la copia.
19#@date    2016-10-14
20#@author  Irina Gómez, ETSII Univ. Sevilla
21#*/ ##
22
23PROG=$(basename $0)
24OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
25OGIMG=$OPENGNSYS/images
26IMGEXT="img"
27BAKEXT="ant"
28DIFFEXT="diff"
29
30# Si se solicita, mostrar ayuda.
31if [ "$*" == "help" ]; then
32    cat << EOT
33$PROG: Borra los ficheros de una imagen del repositorio.
34Formato: $PROG [ -b | -r ] [ str_image | str_dir/str_image ]
35         -b  Elimina también la copia de seguridad de la imagen.
36         -r  Recupera la copia de seguridad de la imagen.
37Ejemplo: $PROG imagen1
38         $PROG -r dir2/imagen2
39EOT
40    exit 0
41fi
42# Procesar parámetros
43while getopts br OPTION; do
44    case $OPTION in
45        b) DELETEBACKUP=1 ;;
46        r) RECOVERBACKUP=1 ;;
47        *) ERR=1 ;;
48    esac
49    shift $((OPTIND-1))
50done
51[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1
52if [ $# != 1 -o -n "$ERR" ]; then
53    echo "$PROG Error: Formato: $PROG [ -b | -r ] [ str_image | str_dir/str_image ]"
54    exit 1
55fi
56
57# Eliminar ficheros de imagen monolítica o sincronizada.
58for IMG in "$OGIMG/$1.$IMGEXT" "$OGIMG/$1.$IMGEXT.$DIFFEXT" "$OGIMG/$1"; do
59    # Borro la imagen si existe
60    if [ -r $IMG ] ; then
61        IMGPATH=$IMG
62        echo "Borrando imagen $IMGPATH"
63        rm -fr $IMGPATH{,.sum,.full.sum,.torrent}
64        break
65    fi
66    # Compruebo si existe copia de seguridad
67    [ -r $IMG.$BAKEXT ] && OLDPATH=$IMG
68done
69
70[ "_${IMGPATH}_" == "__" ] && IMGPATH=$OLDPATH
71# Recuperar copia de seguridad de la imagen.
72if [ -n "$RECOVERBACKUP" ]; then
73    [ -e $IMGPATH.$BAKEXT ] && echo "Recuperando copia $IMGPATH.$BAKEXT"
74    mv -f $IMGPATH.$BAKEXT $IMGPATH && \
75            (mv -f $IMGPATH.sum.$BAKEXT $IMGPATH.sum 2>/dev/null
76             mv -f $IMGPATH.full.sum.$BAKEXT $IMGPATH.full.sum 2>/dev/null
77             mv -f $IMGPATH.torrent.$BAKEXT $IMGPATH.torrent 2>/dev/null)
78fi
79
80# Borrar copia de seguridad de la imagen.
81if [ -n "$DELETEBACKUP" ]; then
82    [ -e $IMGPATH.$BAKEXT ] && echo "Eliminando copia $IMGPATH.$BAKEXT"
83    rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,full.sum,torrent}.$BAKEXT
84fi
Note: See TracBrowser for help on using the repository browser.