diff options
author | irina <irinagomez@us.es> | 2016-03-02 10:13:54 +0000 |
---|---|---|
committer | irina <irinagomez@us.es> | 2016-03-02 10:13:54 +0000 |
commit | 25a56b8bfa8125b28c974c832f22f0ff9a87e5eb (patch) | |
tree | dfe3ba4e6e2897bc9aaa709016f4703fc5bd1369 /repoman | |
parent | a1c1fe02fbb93758ba66278c2c589f781eb12bff (diff) |
#678 Permite borrar imágenes en directorios de unidades organizativas desde la consola o línea de comando
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4811 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'repoman')
-rwxr-xr-x | repoman/bin/deleteimage | 35 | ||||
-rwxr-xr-x | repoman/bin/deletepreimage | 36 |
2 files changed, 19 insertions, 52 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage index d30ec785..c9aff3f0 100755 --- a/repoman/bin/deleteimage +++ b/repoman/bin/deleteimage @@ -1,14 +1,11 @@ #!/bin/bash -# deleteimage [ -b | -r ] [ dir_ogunit ] str_image +# 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_dir_ogunit Nombre del subdirectorio de la unidad organizativa (opcional). -#@param str_image Nombre canónico de la imagen, sin extensión. +#@param str_image Nombre canónico de la imagen, sin extensión. Permite directorio. #@exception 1 Error de formato -#@exception 2 Solo ejecutable por root -#@exception 3 No existe subdirectorio de la unidad organizativa #@version 1.0 - Versión inicial. #@date 2012-10-14 #@author Ramón Gómez, ETSII Univ. Sevilla @@ -18,9 +15,6 @@ #@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 - Separación subdirectorios unidades organizativas. -#@date 2016-01-03 -#@author Irina Gómez, ETSII Univ. Sevilla PROG=$(basename $0) @@ -34,13 +28,11 @@ DIFFEXT="diff" if [ "$*" == "help" ]; then cat << EOT $PROG: Borra los ficheros de una imagen del repositorio. -Formato: $PROG [ -b | -r ] [ str_dir_ogunit ] str_image +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. - dir_ogunit subdirectorio unidad organizativa - Ejemplo: $PROG imagen1 - $PROG -r dir_ogunit2 imagen2 + $PROG -r dir2/imagen2 EOT exit 0 fi @@ -54,26 +46,11 @@ while getopts br OPTION; do shift $((OPTIND-1)) done [ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1 -if [ $# -lt 1 -o -n "$ERR" ]; then - echo "$PROG Error: Formato: $PROG [ -b | -r ] [ str_dir_ogunit ] str_image" +if [ $# != 1 -o -n "$ERR" ]; then + echo "$PROG Error: Formato: $PROG [ -b | -r ] [ str_image | str_dir/str_image ]" exit 1 fi -if [ "$USER" != "root" ]; then - echo "$PROG: Error: solo ejecutable por root" >&2 - exit 2 -fi - -if [ "$2" ]; then - if [ -d "$OGIMG/$1" ]; then - OGIMG="$OGIMG/$1" - else - echo "$PROG Error: No existe el subdirectorio de la unidad organizativa $OGIMG/$1" - exit 3 - fi - shift -fi - # Eliminar ficheros de imagen monolítica o sincronizada básica. IMGPATH="$OGIMG/$1.$IMGEXT" if [ -f $IMGPATH ]; then diff --git a/repoman/bin/deletepreimage b/repoman/bin/deletepreimage index 39077483..b4020ba0 100755 --- a/repoman/bin/deletepreimage +++ b/repoman/bin/deletepreimage @@ -30,33 +30,23 @@ ls /opt/opengnsys/images/*.delete &>/dev/null || exit for IMG in `ls /opt/opengnsys/images/*.delete`; do ## Obtenemos el nombre de la imagen - DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}') + # DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}') + DELETEIMAGE=$(echo ${IMG%%.*} | awk -F"/opt/opengnsys/images/" '{print $2}') # Borramos marca .delete para que el proximo cron no trabaje sobre este conjunto. [ -f $IMG ] && rm $IMG - ## Comprobamos si es un Directorio .delete - DELETEdir=$(echo $IMG | awk -F"." '{print $2}') ## .delete + ## Comprobamos si es una imagen de backup DELETEant=$(echo $IMG | awk -F"." '{print $3}') ## .ant - DELETEdiff=$(echo $IMG | awk -F"." '{print $3}') ## .diff - ## Si NO es ninguno es un img - ## se llama al escript de borrado de imagen. - ## Si es un Directorio Borramos - if [[ $DELETEdir == "delete" ]]; then - /opt/opengnsys/bin/deleteimage $DELETEIMAGE - - # Si es un Imagen Backup Borramos - elif [[ $DELETEant == "ant" ]]; then - DELETEIMAGE=$DELETEIMAGE".ant" - /opt/opengnsys/bin/deleteimage $DELETEIMAGE - - # Si es un Imagen diff Borramos - elif [[ $DELETEdiff == "diff" ]]; then - /opt/opengnsys/bin/deleteimage $DELETEIMAGE - - # Si no es una de las anteriores lo que queda es img - else - /opt/opengnsys/bin/deleteimage $DELETEIMAGE + ## Si la imagen es un backup se añade la extensión ant + if [[ $DELETEant == "ant" ]]; then + DELETEIMAGE=$DELETEIMAGE".ant" fi -done
\ No newline at end of file + ## si directorio:imagen cambiamos : por / + DELETEIMAGE=$(echo $DELETEIMAGE|tr : /) + + ## se llama al escript de borrado de imagen. + /opt/opengnsys/bin/deleteimage $DELETEIMAGE + +done |