Revert localiso feature
Mixing an option parser with the existing argv/arvc style parser creates a confusing set of conditionals with large if/then inside a case statement. On reflection, I don't think this feature has a place in quickget. For anyone with existing iso image, quickemu configurations can be hand crafted. Perhaps the additional of a "quickconf" would be a better way to quickly create VM configs from existing ISO images.
This commit is contained in:
parent
c74a8fd4d1
commit
3d0a1b5453
122
quickget
122
quickget
@ -534,41 +534,9 @@ function check_hash() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function copy_local(){
|
|
||||||
case $OS in
|
|
||||||
windows)
|
|
||||||
echo "${OS} not (yet?) supported for local isos" ;;
|
|
||||||
macos)
|
|
||||||
# echo "${OS} not (yet?) supported for local isos" ;;
|
|
||||||
if [ -n "${ISODIR}" ]; then
|
|
||||||
for macfile in RecoveryImage.dmg RecoveryImage.chunklist
|
|
||||||
do
|
|
||||||
find "${ISODIR}" -type f -name "${macfile}" -exec cp -pv \{\} "$DIR"/ \;
|
|
||||||
done
|
|
||||||
fi;;
|
|
||||||
*)
|
|
||||||
if [ -n "${ISODIR}" ]; then
|
|
||||||
# use supplied filename or default to original distro ISO name
|
|
||||||
if [ -z "${LOCALISO}" ]; then
|
|
||||||
LOCALISO=${FILE}
|
|
||||||
fi
|
|
||||||
LOCALFILE=$(find "${ISODIR}" -type f -name "${LOCALISO}" -print -quit )
|
|
||||||
if [ -f "${DIR}/${FILE}" ]; then
|
|
||||||
echo "ERROR! File Exists - not copying over local file"
|
|
||||||
echo "Move it out of the way to replace it with a local file"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
cp -pv "${LOCALFILE}" "${DIR}"/"${FILE}"
|
|
||||||
# if ! ; then echo ERROR! Failed to copy ${LOCALFILE}" to ${DIR}/${FILE}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
function web_get() {
|
function web_get() {
|
||||||
local DIR="${2}"
|
local DIR="${2}"
|
||||||
local FILE=""
|
local FILE=""
|
||||||
local LOCALFILE=""
|
|
||||||
local URL="${1}"
|
local URL="${1}"
|
||||||
|
|
||||||
if [ -n "${3}" ]; then
|
if [ -n "${3}" ]; then
|
||||||
@ -582,14 +550,6 @@ function web_get() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${LOCALISO}" ] || [ -n "${ISODIR}" ] ; then
|
|
||||||
copy_local
|
|
||||||
# you only get one shot
|
|
||||||
LOCALISO=""
|
|
||||||
ISODIR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if command -v aria2c > /dev/null; then
|
if command -v aria2c > /dev/null; then
|
||||||
if ! aria2c -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" -o "${DIR}/${FILE}"; then
|
if ! aria2c -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" -o "${DIR}/${FILE}"; then
|
||||||
echo #Necessary as aria2c in suppressed mode does not have new lines
|
echo #Necessary as aria2c in suppressed mode does not have new lines
|
||||||
@ -608,7 +568,6 @@ function web_get() {
|
|||||||
function zsync_get() {
|
function zsync_get() {
|
||||||
local DIR="${2}"
|
local DIR="${2}"
|
||||||
local FILE=""
|
local FILE=""
|
||||||
local LOCALFILE=""
|
|
||||||
local OUT=""
|
local OUT=""
|
||||||
local URL="${1}"
|
local URL="${1}"
|
||||||
FILE="${URL##*/}"
|
FILE="${URL##*/}"
|
||||||
@ -628,13 +587,6 @@ function zsync_get() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${LOCALISO}" ] || [ -n "${ISODIR}" ] ; then
|
|
||||||
copy_local
|
|
||||||
# you only get one shot
|
|
||||||
LOCALISO=""
|
|
||||||
ISODIR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! zsync "${URL}.zsync" -i "${DIR}/${OUT}" -o "${DIR}/${OUT}" 2>/dev/null; then
|
if ! zsync "${URL}.zsync" -i "${DIR}/${OUT}" -o "${DIR}/${OUT}" 2>/dev/null; then
|
||||||
echo "ERROR! Failed to download ${URL}.zsync"
|
echo "ERROR! Failed to download ${URL}.zsync"
|
||||||
exit 1
|
exit 1
|
||||||
@ -1923,25 +1875,7 @@ function get_windows() {
|
|||||||
esac
|
esac
|
||||||
make_vm_config "${FILE_NAME}" "virtio-win.iso"
|
make_vm_config "${FILE_NAME}" "virtio-win.iso"
|
||||||
}
|
}
|
||||||
function usage() {
|
|
||||||
echo
|
|
||||||
echo "Usage"
|
|
||||||
echo " $0 [--isodir] [--localiso] [--list | --json] <OS> <Release> (<Option>)"
|
|
||||||
echo
|
|
||||||
echo If you omit parameters a list of supported OS options will be provided.
|
|
||||||
echo If you omit a Release a list of supported releases for the selected OS will be given.
|
|
||||||
echo
|
|
||||||
echo "You can also pass optional parameters"
|
|
||||||
echo
|
|
||||||
echo " --list : print a csv list of supported guest"
|
|
||||||
echo " --json : print a json list of supported guest"
|
|
||||||
echo " --isodir : base path beneath which to find local ISO copy
|
|
||||||
if a matching file is found it will be copied to the VM directory"
|
|
||||||
echo " --localiso : local ISO filename - defaults to target filename"
|
|
||||||
echo " --help : Print usage (this)"
|
|
||||||
echo " --version : Print version"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
if ((BASH_VERSINFO[0] < 4))
|
if ((BASH_VERSINFO[0] < 4))
|
||||||
@ -1953,45 +1887,17 @@ fi
|
|||||||
LANGS=()
|
LANGS=()
|
||||||
languages_windows
|
languages_windows
|
||||||
|
|
||||||
# handle parameters
|
|
||||||
|
|
||||||
# Take command line arguments
|
|
||||||
if [ $# -lt 1 ]; then
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "${1}" in
|
|
||||||
-isodir|--isodir)
|
|
||||||
ISODIR="${2}"
|
|
||||||
shift
|
|
||||||
shift;;
|
|
||||||
-localiso|--localiso)
|
|
||||||
LOCALISO="${2}"
|
|
||||||
shift
|
|
||||||
shift;;
|
|
||||||
-h|--h|-help|--help)
|
|
||||||
usage
|
|
||||||
exit 0;;
|
|
||||||
-l|--l|-list|--list|list|list_csv)
|
|
||||||
list_csv;;
|
|
||||||
-j|--j|-json|--json|list_json)
|
|
||||||
list_json;;
|
|
||||||
-v|--v|-version|--version|version )
|
|
||||||
whereIam=$(dirname "${BASH_SOURCE[0]}")
|
|
||||||
quickemu_version=$( "${whereIam}"/quickemu --version)
|
|
||||||
echo "Quickemu Version: ${quickemu_version}"
|
|
||||||
exit 0;;
|
|
||||||
-t|--t|-test|--test)
|
|
||||||
echo "you are just testing
|
|
||||||
ISODIR: ${ISODIR}
|
|
||||||
LOCALISO: ${LOCALISO}"
|
|
||||||
ls -lh "${ISODIR}/${LOCALISO}"
|
|
||||||
exit 0;;
|
|
||||||
*)
|
|
||||||
|
|
||||||
if [ -n "${1}" ]; then
|
if [ -n "${1}" ]; then
|
||||||
OS="${1,,}"
|
OS="${1,,}"
|
||||||
|
if [ "${OS}" == "list" ] || [ "${OS}" == "list_csv" ]; then
|
||||||
|
list_csv
|
||||||
|
elif [ "${OS}" == "list_json" ]; then
|
||||||
|
list_json
|
||||||
|
elif [ "${OS}" == "--version" ] || [ "${OS}" == "-version" ] || [ "${OS}" == "version" ]; then
|
||||||
|
WHERE=$(dirname "${BASH_SOURCE[0]}")
|
||||||
|
"${WHERE}/quickemu" --version
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR! You must specify an operating system:"
|
echo "ERROR! You must specify an operating system:"
|
||||||
os_support
|
os_support
|
||||||
@ -2212,11 +2118,3 @@ else
|
|||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if [ $# == 0 ]; then
|
|
||||||
echo "Error: You must supply an OS!"
|
|
||||||
os_support
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
Loading…
Reference in New Issue
Block a user