Annotation of embedaddon/strongswan/testing/scripts/chroot, revision 1.1
1.1 ! misho 1: #!/bin/bash
! 2:
! 3: DIR=$(dirname `readlink -f $0`)
! 4: . $DIR/../testing.conf
! 5: . $DIR/function.sh
! 6:
! 7: [ `id -u` -eq 0 ] || die "You must be root to run $0"
! 8: running_any $STRONGSWANHOSTS && die "Please stop test environment before running $0"
! 9:
! 10: [ -n "$1" ] || die "$0 <image to mount: base|root|<guest>>"
! 11:
! 12: check_commands partprobe qemu-nbd
! 13:
! 14: load_qemu_nbd
! 15:
! 16: mkdir -p $LOOPDIR
! 17: mkdir -p $IMGDIR
! 18: mkdir -p $SHAREDDIR
! 19:
! 20: echo "Mounting image"
! 21:
! 22: case "$1" in
! 23: base)
! 24: [ -f "$BASEIMG" ] || die "Base image $BASEIMG not found"
! 25: log_action "Connecting base image to NBD device $NBDEV"
! 26: execute "qemu-nbd -c $NBDEV $BASEIMG"
! 27: affected="root and guest"
! 28: ;;
! 29: root)
! 30: [ -f "$ROOTIMG" ] || die "Root image $ROOTIMG not found"
! 31: log_action "Connecting root image to NBD device $NBDEV"
! 32: execute "qemu-nbd -c $NBDEV $ROOTIMG"
! 33: affected="guest"
! 34: ;;
! 35: *)
! 36: echo $STRONGSWANHOSTS | grep -q "\b$1\b" || die "Guest $1 not found"
! 37: GUESTIMG="$IMGDIR/$1.$IMGEXT"
! 38: [ -f "$GUESTIMG" ] || die "Guest image $GUESTIMG not found"
! 39: log_action "Connecting guest image to NBD device $NBDEV"
! 40: execute "qemu-nbd -c $NBDEV $GUESTIMG"
! 41: ;;
! 42: esac
! 43:
! 44: do_on_exit qemu-nbd -d $NBDEV
! 45: partprobe $NBDEV
! 46:
! 47: log_action "Mounting $NBDPARTITION to $LOOPDIR"
! 48: execute "mount $NBDPARTITION $LOOPDIR"
! 49: do_on_exit umount $LOOPDIR
! 50:
! 51: log_action "Mounting proc filesystem to $LOOPDIR/proc"
! 52: execute "mount -t proc none $LOOPDIR/proc"
! 53: do_on_exit umount $LOOPDIR/proc
! 54:
! 55: mkdir -p $LOOPDIR/root/shared
! 56: log_action "Mounting $SHAREDDIR as /root/shared"
! 57: execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared"
! 58: do_on_exit umount $LOOPDIR/root/shared
! 59:
! 60: if [ -n "$affected" ]; then
! 61: echo
! 62: echo "Rebuild the $affected images after making changes to this image!"
! 63: echo
! 64: fi
! 65:
! 66: export debian_chroot="$1"
! 67: chroot $LOOPDIR /bin/bash -i
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>