summaryrefslogtreecommitdiff
path: root/tools/windows_packaging/cptovm.sh
blob: 62e6fd6a2731b66a23c37a1643077c6c9d66e3a2 (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
#!/bin/bash

. ./mingw-env.sh

TMP_DIR=tmp
LOOP_DEV=/dev/loop4

cd $BASE || exit 1

if [ ! -d $TMP_DIR ]; then
	echo "Creating temp directory to mount vm image ..."
	mkdir $TMP_DIR || exit 1
fi

echo "mounting vm image as loopback device ..."

sudo mount -o loop=$LOOP_DEV,offset=32256 $VIRT_IMAGE_PATH $TMP_DIR || exit 1

if [ -d $TMP_DIR/$PACKAGE_DIR ]; then
	echo "Removing old copy of $PACKAGE_DIR from vm image ..."
	rm -rf $TMP_DIR/$PACKAGE_DIR || exit 1
fi

echo "Copying $PACKAGE_DIR to vm image ..."
cp -r $PACKAGE_DIR $TMP_DIR || exit 1

if [ "$1" == "--data" ]; then
	DATA_DIR=data

	if [ -d $TMP_DIR/$DATA_DIR ]; then
		echo "Removing old copy of $DATA_DIR from vm image ..."
		rm -rf $TMP_DIR/$DATA_DIR || exit 1
	fi

	echo "Copying $DATA_DIR to vm image ..."
	cp -r $DATA_DIR $TMP_DIR || exit 1
fi


# in case mount is busy
sleep 2

echo "Unmounting vm image ..."

sudo umount -d tmp

echo "Removing temp directory used to mount vm image ..."
rm -rf $TMP_DIR || exit 1

if sudo losetup $LOOP_DEV; then
	echo "sleeping for 10 seconds and trying again ..."
	sleep 10
	if sudo losetup -d $LOOP_DEV; then
		echo "Unmounted loopback device successfully"
		exit 0
	else:
		echo "Unmounting loopback device unsuccessful, you will need to use losetup -d to unmount device"
		exit 1
	fi
fi

exit 0