blob: 2da477e455f9a6552a9776cb48f89f7143321cc1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#!/bin/bash
# deleteimage [ -b | -r ] [ str_image | str_dir/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. Permite directorio.
#@exception 1 Error de formato
#@version 1.0 - Versión inicial.
#@date 2012-10-14
#@author Ramón Gómez, ETSII Univ. Sevilla
#@version 1.0.5 - Eliminar imagen incremental.
#@date 2013-07-17
#@author Alberto García, Univ. Málaga
#@version 1.0.6 - Detección automática del tipo de imagen.
#@date 2014-10-29
#@author Ramón Gómez, ETSII Univ. Sevilla
#@version 1.1.0 - Aunque no exista imagen permite recuperar la copia.
#@date 2016-10-14
#@author Irina Gómez, ETSII Univ. Sevilla
#*/ ##
PROG=$(basename $0)
OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
OGIMG=$OPENGNSYS/images
IMGEXT="img"
BAKEXT="ant"
DIFFEXT="diff"
# 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 | str_dir/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
$PROG -r dir2/imagen2
EOT
exit 0
fi
# Procesar parámetros
while getopts br 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 | str_dir/str_image ]"
exit 1
fi
# Eliminar ficheros de imagen monolítica o sincronizada.
for IMG in "$OGIMG/$1.$IMGEXT" "$OGIMG/$1.$IMGEXT.$DIFFEXT" "$OGIMG/$1"; do
# Borro la imagen si existe
if [ -r $IMG ] ; then
IMGPATH=$IMG
echo "Borrando imagen $IMGPATH"
rm -f $IMGPATH{,.sum,.full.sum,.torrent}
break
fi
# Compruebo si existe copia de seguridad
[ -r $IMG.$BAKEXT ] && OLDPATH=$IMG
done
[ "_${IMGPATH}_" == "__" ] && IMGPATH=$OLDPATH
# Recuperar copia de seguridad de la imagen.
if [ -n "$RECOVERBACKUP" ]; then
[ -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.full.sum.$BAKEXT $IMGPATH.full.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
[ -e $IMGPATH.$BAKEXT ] && echo "Eliminando copia $IMGPATH.$BAKEXT"
rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,full.sum,torrent}.$BAKEXT
fi
|