#!/bin/bash
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2018 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
# See the License for the specific language governing permissions and
# limitations under the License.
-QEMU_VERSION="qemu-2.2.1"
-
-QEMU_DOWNLOAD_REPO="http://wiki.qemu-project.org/download/"
-QEMU_DOWNLOAD_PACKAGE="${QEMU_VERSION}.tar.bz2"
-QEMU_PACKAGE_URL="${QEMU_DOWNLOAD_REPO}${QEMU_DOWNLOAD_PACKAGE}"
-QEMU_INSTALL_DIR="/opt/qemu"
-
-if test "$(id -u)" -ne 0
-then
- echo "Please use root or sudo to be able to install into: ${QEMU_INSTALL_DIR}"
- exit 1
-fi
-
-WORKING_DIR=$(mktemp -d)
-test $? -eq 0 || exit 1
-
-cleanup () {
- rm -r ${WORKING_DIR}
-}
-
-trap cleanup EXIT
-
-if [[ "$@" == "--force" ]]
-then
- rm -rf ${QEMU_INSTALL_DIR}
-else
- test -d ${QEMU_INSTALL_DIR} && echo "Qemu already installed: ${QEMU_INSTALL_DIR}" && exit 0
-fi
-
-echo
-echo Downloading QEMU source
-echo
-wget -P ${WORKING_DIR} -q ${QEMU_PACKAGE_URL} || exit
-test $? -eq 0 || exit 1
-
-echo
-echo Extracting QEMU
-echo
-tar --strip-components 1 -xjf ${WORKING_DIR}/${QEMU_DOWNLOAD_PACKAGE} -C ${WORKING_DIR} || exit
-test $? -eq 0 || exit 1
-
-echo
-echo Building QEMU
-echo
-cd ${WORKING_DIR}
-mkdir ${QEMU_INSTALL_DIR}
-mkdir build
-cd build
-../configure --target-list=x86_64-softmmu --prefix=${QEMU_INSTALL_DIR} || exit
-make -j`nproc` || exit 1
-make install || exit 1
-
-echo
-echo QEMU ready
-echo
+set -x
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Include
+source ${SCRIPT_DIR}/config/defaults
+source ${SCRIPT_DIR}/shell/qemu_utils.sh
+
+# Read configuration
+while read line
+do
+ if echo $line | grep -F = &>/dev/null
+ then
+ varname=$(echo "$line" | cut -d '=' -f 1)
+ cfg[$varname]=$(echo "$line" | cut -d '=' -f 2-)
+ fi
+done < ${SCRIPT_DIR}/config/config
+
+# Read parameters
+for i in "$@"; do
+ case $i in
+ --version=*)
+ cfg['QEMU_INSTALL_VERSION']="${i#*=}"
+ shift ;;
+ --directory=*)
+ cfg['QEMU_INSTALL_DIR']="${i#*=}"
+ shift ;;
+ --patch)
+ cfg['QEMU_PATCH']=true
+ shift ;;
+ --force)
+ cfg['QEMU_FORCE_INSTALL']=true
+ shift ;;
+ --target-list)
+ cfg['QEMU_TARGET_LIST']="${i#*=}"
+ shift ;;
+ *)
+ ;;
+ esac
+done
+
+# Install qemu
+qemu_utils.qemu_install ${cfg[QEMU_INSTALL_DIR]} ${cfg[QEMU_INSTALL_VERSION]} \
+ ${cfg[QEMU_PATCH]} ${cfg[QEMU_FORCE_INSTALL]} ${cfg[QEMU_TARGET_LIST]}