From 9cc489608c3539d4c14c5ad3d27792d80191bd0f Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 19 Oct 2021 14:56:45 +0100 Subject: [PATCH] Refactor argument evaluation --- quickget | 81 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 41 deletions(-) diff --git a/quickget b/quickget index 54ae56c..1297ccd 100755 --- a/quickget +++ b/quickget @@ -854,22 +854,59 @@ if [ -n "${1}" ]; then list_all fi else - echo "ERROR! You must specify an OS:" + echo "ERROR! You must specify an operating system:" os_support exit 1 fi if [ -n "${2}" ]; then RELEASE="${2,,}" + VM_PATH="${OS}-${RELEASE}" + + if [ "${OS}" == "elementary" ]; then + get_elementary + elif [ "${OS}" == "macos" ]; then + get_macos + elif [ "${OS}" == "freebsd" ]; then + get_freebsd + elif [ "${OS}" == "fedora" ]; then + get_fedora + elif [[ "${OS}" == *"linuxmint"* ]]; then + get_linuxmint + elif [ "${OS}" == "opensuse" ]; then + get_opensuse + elif [ "${OS}" == "popos" ]; then + get_popos + elif [[ "${OS}" == *"ubuntu"* ]]; then + get_ubuntu + elif [ "${OS}" == "windows" ]; then + if [ -n "${3}" ]; then + LANG_NAME="${3}" + if [[ ! ${LANGS[*]} =~ ${LANG_NAME} ]]; then + echo "ERROR! ${LANG_NAME} is not a supported language:" + for LANG in "${LANGS[@]}"; do + echo "${LANG}" + done + exit 1 + fi + else + LANG_NAME="English International" + fi + get_windows "${LANG_NAME}" + else + echo "ERROR! ${OS} is unknown:" + os_support + exit 1 + fi else - echo "ERROR! You must specify an OS release name." + echo "ERROR! You must specify a release for ${OS}:" if [ "${OS}" == "elementary" ]; then releases_elementary elif [ "${OS}" == "freebsd" ]; then releases_freebsd elif [ "${OS}" == "fedora" ]; then releases_fedora - elif [ "${OS}" == "linuxmint" ]; then + elif [[ "${OS}" == *"linuxmint"* ]]; then releases_linuxmint elif [ "${OS}" == "opensuse" ]; then releases_opensuse @@ -884,41 +921,3 @@ else fi exit 1 fi - -VM_PATH="${OS}-${RELEASE}" - -if [ "${OS}" == "elementary" ]; then - get_elementary -elif [ "${OS}" == "macos" ]; then - get_macos -elif [[ "${OS}" == "freebsd" ]]; then - get_freebsd -elif [[ "${OS}" == "fedora" ]]; then - get_fedora -elif [[ "${OS}" == "linuxmint" ]]; then - get_linuxmint -elif [[ "${OS}" == "opensuse" ]]; then - get_opensuse -elif [[ "${OS}" == "popos" ]]; then - get_popos -elif [[ "${OS}" == *"ubuntu"* ]]; then - get_ubuntu -elif [ "${OS}" == "windows" ]; then - if [ -n "${3}" ]; then - LANG_NAME="${3}" - if [[ ! ${LANGS[*]} =~ ${LANG_NAME} ]]; then - echo "ERROR! ${LANG_NAME} is not a supported language:" - for LANG in "${LANGS[@]}"; do - echo "${LANG}" - done - exit 1 - fi - else - LANG_NAME="English International" - fi - get_windows "${LANG_NAME}" -else - echo "ERROR! You must specify an OS:" - os_support - exit 1 -fi