summaryrefslogtreecommitdiff
path: root/scripts/qw
blob: 1a1fe5acfeba4af54884ec1df75cb3f61e69739c (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
#!/bin/sh

help() {
cat << EOF
${0}: Qemu Wrapper, very simple script for abriviating \
verbose qemu commands and options

options:
 -c		create an Image.img with 10G space
 -r [input.iso]	run input.iso
EOF
}

err() {
	for line in "${@}"; do
		echo "${line}" >&2
	done
	exit 1
}

run() {
	if ! ${1} > /dev/null 2>&1; then
		err "${2}"
	fi

	[ -n "${3}" ] && echo "${3}"
	exit 0
}

if ! command -v qemu-img > /dev/null 2>&1 || \
   ! command -v qemu-system-x86_64 > /dev/null 2>&1; then
	err "${0}: qemu must be properly installed"
fi

if [ $# != 2 ] && [  $# != 1 ]; then
	err "${0}: Invalid usage" "Try '${0} -h' for help."
fi

while getopts "cr:h" option ;do
	case "${option}" in
	c)
		run "qemu-img create -f qcow2 Image.img 10G" \
		"${0}: Failed to create Image.img"
	;;
	r)
		run "qemu-system-x86_64 -enable-kvm -cdrom ${OPTARG} \
			-boot menu=on -drive file=Image.img -m 4G" \
			"${0}: Failed to run image"
	;;
	h) help; exit 0;;

	*) err "Try '${0} -h' for help." ;;

	esac
done

err "${0}: Invalid usage" "Try '${0} -h' for help."