source: repoman/bin/mountimage @ eeade34

v1.2.0
Last change on this file since eeade34 was 744ecd6, checked in by irina <irinagomez@…>, 7 years ago

#770 Script de servidor sincronizadas: si no existe fichero de idioma toma por defecto el castellano.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5503 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 2.4 KB
Line 
1#!/bin/bash
2#/**
3#        mountimage
4#@brief  Monta imagen sincronizable en el repositorio con permisos de escritura
5#@param 1 imagen
6#@param 2 extension [ img|diff ] opcional, por defecto img
7#@return  Directorio de montaje de la imagen.
8#@exception OG_ERR_FORMAT     # 1 formato incorrecto.
9#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
10#@exception OG_ERR_DONTSYNC_IMAGE  #71 Imagen no sincronizable (es monolitica)
11#@exception OG_ERR_DONTMOUNT_IMAGE # 70 Error al montar una imagen sincronizada
12#@version 1.0 - Montar imagen sincronizable
13#@author  Irina Gomez
14#@date   2013-05-23
15#*/ ##
16BASEDIR=/opt/opengnsys
17REPODIR="$BASEDIR/images"
18# Cargamos los mensajes en el idioma del sistema.
19# Comprobamos que el fichero de idioma existe. Si no "es_ES" por defecto.
20ls $BASEDIR/client/etc/lang.$LANG.conf &>/dev/null
21[ $? -eq 0 ] || LANG="es_ES"
22source $BASEDIR/client/etc/lang.$LANG.conf
23
24
25PROG="$(basename $0)"
26# Si se solicita, mostrar ayuda.
27if [ "$*" == "help" ]; then
28    echo -e " $PROG: $MSG_HELP_ogMountImage \n" \
29            "$MSG_FORMAT: $PROG nombre_image [ img|diff ] \n" \
30            "base -> $PROG Windows7 \n" \
31            "diff -> $PROG Ubuntu12 diff"
32   exit 0
33fi
34
35[ $# -lt 1 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n     $MSG_FORMAT: $PROG image [ img | diff ]" && exit 1
36
37if [ "$USER" != "root" ]; then
38        echo "$PROG: Error: solo ejecutable por root" >&2
39        exit 1
40fi
41
42[ "$2" == "" -o "$2" == "img" ] && IMGEXT="img" || IMGEXT="img.diff"
43
44# Comprobamos que existe imagen
45IMGFILE="$REPODIR/$1.$IMGEXT"
46[ ! -f $IMGFILE ] && echo "$PROG: Error: $MSG_ERR_NOTFOUND $1 $IMGEXT" && exit 2
47
48
49# Comprobar que la imagen  es sincronizable
50file $IMGFILE | grep -i -e " BTRFS Filesystem " >/dev/null && IMGFS=BTRFS
51file $IMGFILE | grep -i -e " ext4 filesystem " >/dev/null && IMGFS=EXT4
52if [ "$IMGFS" != "BTRFS" -a "$IMGFS" != "EXT4" ] ; then
53        echo "$PROG: Error: $MSG_ERR_DONTSYNC_IMAGE $1 $2"
54        exit 71
55fi
56
57MOUNTDIR="$REPODIR/mount/$1"
58[ "$IMGEXT" == "img.diff" ] && MOUNTDIR="$MOUNTDIR.${IMGEXT#*\.}"
59mkdir -p "$MOUNTDIR"
60
61# Comprobamos si la imagen esta montada y si es así nos salimos.
62df |grep "$MOUNTDIR$"  2>&1  >/dev/null && echo "$MOUNTDIR" && exit 0
63
64if [ "$IMGFS" == "EXT4" ] ; then
65        mount -t ext4 "$IMGFILE" "$MOUNTDIR"
66else
67        mount -o compress=lzo  "$IMGFILE" "$MOUNTDIR"
68fi
69[ $? -eq 0 ] || ( echo "$MSG_ERR_DONTMOUNT_IMAGE  $1 $2" ; exit 70)
70echo  "$MOUNTDIR"
71
Note: See TracBrowser for help on using the repository browser.