From a2bc3f894baee3e797fc8496cdd10cc5cb1d9ff5 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:24:04 +0100 Subject: [PATCH 01/38] fix(quickget): add daily-live to ubuntu-server --- quickget | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quickget b/quickget index 01afcbaaf8..e9ab5e1216 100755 --- a/quickget +++ b/quickget @@ -1151,8 +1151,9 @@ function releases_ubuntu() { } function releases_ubuntu-server() { - local ALL_VERSIONS=($(IFS=$'\n' web_pipe http://releases.ubuntu.com/streams/v1/com.ubuntu.releases:ubuntu-server.json | jq -r '.products[] | select(.arch=="amd64") | .version' | sort -rV)) - echo "${ALL_VERSIONS[@]}" + local ALL_VERSIONS=() + ALL_VERSIONS=($(IFS=$'\n' web_pipe http://releases.ubuntu.com/streams/v1/com.ubuntu.releases:ubuntu-server.json | jq -r '.products[] | select(.arch=="amd64") | .version' | sort -rV)) + echo daily-live "${ALL_VERSIONS[@]}" } function releases_vanillaos() { From ec436392f411e0ef5178d981a6853e145b924e0f Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:24:56 +0100 Subject: [PATCH 02/38] chore(quickget): remove obsolete daily check from ubuntu --- quickget | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quickget b/quickget index e9ab5e1216..ba2ece42f1 100755 --- a/quickget +++ b/quickget @@ -2574,7 +2574,7 @@ function get_ubuntu-server() { local ISO="" local NAME="live-server" local URL="" - [[ $RELEASE = daily ]] && RELEASE=daily-live + if [[ "${RELEASE}" == "daily"* ]]; then URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current" else @@ -2609,7 +2609,7 @@ function get_ubuntu() { local HASH="" local URL="" local DATA="" - [[ $RELEASE = daily ]] && RELEASE=daily-live + if [[ "${RELEASE}" == "daily"* ]] && [ "${OS}" == "ubuntustudio" ]; then # Ubuntu Studio daily-live images are in the dvd directory RELEASE="dvd" From 40385db7a62fdbaf4fe1920510eaf5dabf888144 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:25:38 +0100 Subject: [PATCH 03/38] refactor: simplify get_tuxedo-os() --- quickget | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/quickget b/quickget index ba2ece42f1..4f16bc695e 100755 --- a/quickget +++ b/quickget @@ -2560,13 +2560,12 @@ function get_truenas-core() { } function get_tuxedo-os() { + local HASH="" local ISO="" - local URL="" - local Current= - Current="$(web_pipe "https://os.tuxedocomputers.com/" | grep -m 1 current.iso | cut -d '=' -f 4 | cut -d '"' -f 2)" - URL="https://os.tuxedocomputers.com/${Current}" - HASH="$(web_pipe "https://os.tuxedocomputers.com/checksums/${Current}.sha256" | cut -d ' ' -f 1)" - echo "${URL} ${HASH}" + local URL="https://os.tuxedocomputers.com" + ISO="$(web_pipe "https://os.tuxedocomputers.com/" | grep -m 1 current.iso | cut -d '=' -f 4 | cut -d '"' -f 2)" + HASH="$(web_pipe "https://os.tuxedocomputers.com/checksums/${ISO}.sha256" | cut -d ' ' -f 1)" + echo "${URL}/${ISO} ${HASH}" } function get_ubuntu-server() { From 6485c454a549079e491cc11d22cace73bbc04741 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:26:28 +0100 Subject: [PATCH 04/38] fix(shellcheck): add missing local variable in get_truenas-scale() --- quickget | 1 + 1 file changed, 1 insertion(+) diff --git a/quickget b/quickget index 4f16bc695e..83ea2fa6b2 100755 --- a/quickget +++ b/quickget @@ -2542,6 +2542,7 @@ function get_trisquel() { } function get_truenas-scale() { + local HASH="" local ISO="" local URL="" local DLINFO="https://www.truenas.com/download-truenas-scale/" From 2e4b8aab90c95b516f8b8afb9d5316ab0c539021 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:26:55 +0100 Subject: [PATCH 05/38] style: add braces around variable names --- quickget | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quickget b/quickget index 83ea2fa6b2..63a8860011 100755 --- a/quickget +++ b/quickget @@ -2640,7 +2640,7 @@ function get_ubuntu() { ISO=$(cut -d'*' -f2 <<<${DATA}) HASH=$(cut_1 <<<${DATA}) fi - if [ -z $ISO ] || [ -z $HASH ]; then + if [ -z "${ISO}" ] || [ -z "${HASH}" ]; then echo "$(pretty_name $OS) ${RELEASE} is currently unavailable. Please select other OS/Release combination" exit 1 fi @@ -3391,7 +3391,7 @@ function create_vm() { check_hash "${ISO}" "${HASH}" fi - if [ ${OS} == "freedos" ] && [[ $ISO =~ ".zip" ]]; then + if [ ${OS} == "freedos" ] && [[ ${ISO} =~ ".zip" ]]; then unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso') fi @@ -3414,7 +3414,7 @@ function create_vm() { ISO="${ISO/.img/}" fi - if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then + if [ ${OS} == "reactos" ] && [[ ${ISO} =~ ".zip" ]]; then unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') fi From 9023809c25b9c9ba99ecb4157631b89393e49194 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:28:34 +0100 Subject: [PATCH 06/38] chore(quickget): remove obsolete logic for guix --- quickget | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/quickget b/quickget index 63a8860011..59db5dd12a 100755 --- a/quickget +++ b/quickget @@ -3395,9 +3395,7 @@ function create_vm() { unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso') fi - #if [ ${OS} == "guix" ] && [[ $ISO =~ ".qcow2" ]]; then - #cp ${VM_PATH}/${ISO} ${VM_PATH}/disc.qcow2 - #fi + if [[ ${OS} == "batocera" ]] && [[ ${ISO} =~ ".gz" ]]; then gzip -d "${VM_PATH}/${ISO}" ISO="${ISO/.gz/}" From 8f94fcf8111a35a111577d55b02e20b8d8e714c5 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 00:38:24 +0100 Subject: [PATCH 07/38] chore(quickget): remove how-to from code; added to the wiki https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget --- quickget | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/quickget b/quickget index 59db5dd12a..1f175949cc 100755 --- a/quickget +++ b/quickget @@ -1,28 +1,6 @@ #!/usr/bin/env bash export LC_ALL=C -# Here the quick 'n dirty guide to adding a new OS to quickget -# -# 1. Update os_support() - add new OS, all lowercase -# 2. Update os_info() - Fill all posible fields for new OS (leave empty if no login, but | must stay same) -# Here is whats should be there... -# ) INFO="||||";; -# 4. Create a releases_newos() generator (required) outputs the current supported release versions (from newest) -# 5. Create a editions_newos() generator (optional) outputs the editions if new OS has multiple flavours/editions -# 6. Update make_vm_config() - add any *required* new OS tweaks -# 7. Create a get_newos() function - that does something like this: (Look at other OS) -# For cutting first field with hash you can use function `cut_1` instead of `cut -d' ' -f1`` -# -#function get_newos() { -# local EDITION="${1:-}" -# local HASH="" -# local ISO="newos-${RELEASE}-${EDITION}-amd64.iso" -# local URL="https://www.newos.org/download/${RELEASE}/${EDITION}" -# -# HASH=$(web_pipe "${URL}/SHA512SUMS" | grep "${ISO}" | cut_1) -# echo "${URL}/${ISO} ${HASH}" -#} - function cleanup() { if [ -n "$(jobs -p)" ]; then kill "$(jobs -p)" 2>/dev/null From f39b7308b32a518d55f6d3a8650246219c8a9a05 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 01:49:40 +0100 Subject: [PATCH 08/38] docs: replace screenshot with asciinema --- .github/screenshot.png | Bin 22857 -> 0 bytes README.md | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 .github/screenshot.png diff --git a/.github/screenshot.png b/.github/screenshot.png deleted file mode 100644 index 618340defc1a851c5d3a54640593d70092ccb90a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22857 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 hZ9{p - **Made with 💝 for Tux (Linux)** We have a Discord for this project: @@ -85,6 +83,10 @@ quickemu --vm nixos-unstable.conf - Execute `quickget` (with no arguments) to see a list of all the supported operating systems. +## Demo + +
+ # Documentation The wiki describes how to get up and running with Quickemu and also From 29770787fffae199bcbc477e6d21b61a7d579d75 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:27:10 +0100 Subject: [PATCH 09/38] style(quickget): drop shorthand arguments for consistency quickemu has long hand command line arguments only. This commit removes the short hand arguments from the expanded capabilities introduced in quickget 4.9.3, so that both tools have a consistent user experience. --- quickget | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/quickget b/quickget index 1f175949cc..f540aa838c 100755 --- a/quickget +++ b/quickget @@ -3456,34 +3456,35 @@ if [ ! -e "${CURL}" ]; then fi CURL_VERSION=$("${CURL}" --version | head -1 | cut -d' ' -f2) +#TODO: Deprecate `list`, `list_csv`, and `list_json` in favor of `--list`, `--list-csv`, and `--list-json` case "${1}" in -1*|-2*|-3*|-4*|-5*) show_os_info "${1}" "${2}" exit 0 ;; - '--download'|'-d') + --download|-download) OPERATION="download" shift ;; - '--create-config'|'-cc') + --create-config|-create-config) OPERATION="config" shift create_config "${@}" ;; - '--open-homepage'|'-o') + --open-homepage|-open-homepage) shift open_homepage "${1}" ;; - '--version'|'-v') + --version|-version) WHERE=$(dirname "${BASH_SOURCE[0]}") "${WHERE}/quickemu" --version exit 0 ;; - '--help'|'-h') + --help|-help|--h|-h) help_message exit 0 ;; - '--url'|'-u') + --url|-url) OPERATION="show" shift if [ -z "${1}" ]; then @@ -3496,7 +3497,7 @@ case "${1}" in exit 0 fi ;; - '--check'|'-c') + --check|-check) OPERATION="test" shift if [ -z "${1}" ]; then @@ -3508,17 +3509,9 @@ case "${1}" in fi exit 0 ;; - #TODO: Argument without dashes should be DEPRECATED! - '--list-csv'|'-lc'|'list'|'list_csv'|'lc') - list_csv - ;; - #TODO: Argument without dashes should be DEPRECATED! - '--list-json'|'-lj'|'list_json') - list_json - ;; - '--list'|'-l') - list_supported - ;; + --list-csv|-list-csv|list|list_csv) list_csv;; + --list-json|-list-json|list_json) list_json;; + --list|-list) list_supported;; -*) error_not_supported_argument ;; From 044a1c1b3c215251f92e38f6d06823475a6f317d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:27:50 +0100 Subject: [PATCH 10/38] style: update help_message() to remove shorthand arguments --- quickget | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/quickget b/quickget index f540aa838c..451a834926 100755 --- a/quickget +++ b/quickget @@ -3416,22 +3416,22 @@ Usage: quickget ubuntu 22.04 Advanced usage: - quickget [path] [re] [ed] + quickget [path] [release] [edition] quickget --download ubuntu 22.04 Arguments: - -[12345] : Show info* about OS - --download (-d) [ed] : Download image; no VM configuration - --create-config (-cc) [path/url]: Create default VM config for image - --open-homepage (-o) : Open homepage for the OS - --version (-v) : Show version - --help (-h) : Show this help message + -[12345] : Show info* about OS + --download [edition] : Download image; no VM configuration + --create-config [path/url] : Create VM config for a OS image + --open-homepage : Open homepage for the OS + --version : Show version + --help : Show this help message -------------------------- For testing & development --------------------------- - --url (-u) [os] [re] [ed] : Show image URL(s) - --check (-c) [os] [re] [ed] : Check image URL(s) - --list (-l) : List all supported systems - --list-csv (-lc) : List everything in csv format - --list-json (-lj) : List everything in json format + --url [os] [release] [edition] : Show image URL(s) + --check [os] [release] [edition] : Check image URL(s) + --list : List all supported systems + --list-csv : List everything in csv format + --list-json : List everything in json format -------------------------------------------------------------------------------- *info: 1=Logo 2=Based of 3=Credentials 4=Homepage 5=Short info Can be used in any combination like -13254 or -52 From 44b4b2b955b6773fb8a89219653d102bfda2fb30 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:30:34 +0100 Subject: [PATCH 11/38] docs(README.md): update social links --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 485e24e1ee..d49fff9d17 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,13 @@ **Quickly create and run optimised Windows, macOS and Linux virtual machines:** **Made with 💝 for Tux (Linux)** - -We have a Discord for this project: - -[![Discord](https://img.shields.io/discord/712850672223125565?color=0C306A&label=WimpysWorld%20Discord&logo=Discord&logoColor=ffffff&style=flat-square)](https://discord.gg/sNmz3uw) +

+  Discord  +  Mastodon  +  Twitter  +  LinkedIn  +

# Introduction From ea38677469b5b49783773999efdb365441f7875b Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:36:41 +0100 Subject: [PATCH 12/38] docs(README.md): sign post the documentation for adding a new OS --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d49fff9d17..f8c52e93b1 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ We welcome contributions to Quickemu. - Submit [Quickemu Pull requests](https://github.com/quickemu-project/quickemu/pulls) to fix bugs 🐞 or add new features ✨ + - Follow our [guide to adding a new OS to quickget](https://github.com/quickemu-project/quickemu/wiki/06-Advanced-quickget-features#adding-a-new-os-to-quickget) - Commit messages must [conform to the Conventional Commits - specification](https://www.conventionalcommits.org/). + specification](https://www.conventionalcommits.org/) - [Sponsor the project](https://github.com/sponsors/flexiondotorg) 💖 From da011859928ee3520529724a98b267e3383cdd55 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:58:08 +0100 Subject: [PATCH 13/38] refactor(quickget): special case image processing shellcheck compliant --- quickget | 56 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/quickget b/quickget index 451a834926..610d32e765 100755 --- a/quickget +++ b/quickget @@ -3366,34 +3366,38 @@ function create_vm() { #echo "${HASH}" web_get "${URL}" "${VM_PATH}" if [ -n "${HASH}" ]; then - check_hash "${ISO}" "${HASH}" - fi - - if [ ${OS} == "freedos" ] && [[ ${ISO} =~ ".zip" ]]; then - unzip ${VM_PATH}/${ISO} -d ${VM_PATH} - ISO=$(ls ${VM_PATH} | grep -i '.iso') - fi - - if [[ ${OS} == "batocera" ]] && [[ ${ISO} =~ ".gz" ]]; then - gzip -d "${VM_PATH}/${ISO}" - ISO="${ISO/.gz/}" - fi - # Could be other OS iso files compressed with bzip2 or gzip - # but for now we'll keep this to know cases - if [[ ${OS} == "dragonflybsd" ]] && [[ ${ISO} =~ ".bz2" ]]; then - bzip2 -d "${VM_PATH}/${ISO}" - ISO="${ISO/.bz2/}" - fi - - if [[ ${OS} == "easyos" ]] && [[ ${ISO} =~ ".img" ]]; then - qemu-img convert -f raw -O qcow2 "${VM_PATH}/${ISO}" "${VM_PATH}/disk.qcow2" - ISO="${ISO/.img/}" + check_hash "${ISO}" "${HASH}" fi - if [ ${OS} == "reactos" ] && [[ ${ISO} =~ ".zip" ]]; then - unzip ${VM_PATH}/${ISO} -d ${VM_PATH} - ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') - fi + case "${OS}" in + batocera) + if [[ ${ISO} = *".gz"* ]]; then + gzip -d "${VM_PATH}/${ISO}" + ISO="${ISO/.gz/}" + fi;; + dragonflybsd) + # Could be other OS iso files compressed with bzip2 or gzip + # but for now we'll keep this to know cases + if [[ ${ISO} = *".bz2"* ]]; then + bzip2 -d "${VM_PATH}/${ISO}" + ISO="${ISO/.bz2/}" + fi;; + easyos) + if [[ ${ISO} = *".img"* ]]; then + qemu-img convert -f raw -O qcow2 "${VM_PATH}/${ISO}" "${VM_PATH}/disk.qcow2" + ISO="${ISO/.img/}" + fi;; + freedos) + if [[ ${ISO} = *".zip"* ]]; then + unzip ${VM_PATH}/${ISO} -d ${VM_PATH} + ISO=$(ls ${VM_PATH} | grep -i '.iso') + fi;; + reactos) + if [[ ${ISO} = *".zip"* ]]; then + unzip ${VM_PATH}/${ISO} -d ${VM_PATH} + ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') + fi;; + esac make_vm_config "${ISO}" } From b6c66e5fc1f15a237bfd3826fe6fd65059ec2903 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 10:56:13 +0100 Subject: [PATCH 14/38] fix(quickget): make open_homepage() shellcheck compliant (SC2034) https://www.shellcheck.net/wiki/SC2034 --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 610d32e765..fd518d0e14 100755 --- a/quickget +++ b/quickget @@ -3349,8 +3349,8 @@ function open_homepage() { error_specify_os else URL="$(os_info "${1}" | cut -d'|' -f 4)" + # shellcheck disable=SC2034 XDG_OPEN=$(xdg-open "${URL}" || sensible-browser "${URL}" || x-www-browser "${URL}" || gnome-open "${URL}") - unset XDG_OPEN exit 0 fi } From 7415e8fe5baa62dfb3eeb5ad185f69700e909d44 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:09:36 +0100 Subject: [PATCH 15/38] fix(quickget): correct shellcheck SC2076 warnings https://www.shellcheck.net/wiki/SC2076 --- quickget | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/quickget b/quickget index fd518d0e14..e014243455 100755 --- a/quickget +++ b/quickget @@ -147,7 +147,7 @@ function error_specify_os() { } function os_supported() { - if [[ ! " $(os_support) " =~ " ${OS} " ]]; then + if [[ ! "$(os_support)" =~ ${OS} ]]; then error_not_supported_os fi } @@ -202,7 +202,7 @@ function error_not_supported_os() { } function error_not_supported_release() { - if [[ ! " ${RELEASES[*]} " =~ " ${RELEASE} " ]]; then + if [[ ! "${RELEASES[*]}" =~ ${RELEASE} ]]; then echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release." echo -n 'Supported releases: ' "releases_${OS}" @@ -211,7 +211,7 @@ function error_not_supported_release() { } function error_not_supported_edition() { - if [[ ! " ${EDITIONS[*]} " =~ " ${EDITION} " ]]; then + if [[ ! "${EDITIONS[*]}" =~ ${EDITION} ]]; then echo -e "ERROR! ${EDITION} is not a supported $(pretty_name "${OS}") edition\n" echo -n ' - Editions: ' for EDITION in "${EDITIONS[@]}"; do @@ -3564,7 +3564,7 @@ if [ -n "${2}" ]; then "languages_${OS}" if [ -n "${3}" ]; then LANG="${3}" - if [[ ! ${LANGS[*]} =~ "${LANG}" ]]; then + if [[ ! "${LANGS[*]}" =~ ${LANG} ]]; then error_not_supported_lang fi VM_PATH="$(echo "${OS}-${RELEASE}-${LANG// /-}" | tr -d '()')" From e1abe6802b52ad722a9e224aa4ba176b6b2f1191 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:10:24 +0100 Subject: [PATCH 16/38] refactor(quickget): remove single use function error_not_supported_os() --- quickget | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/quickget b/quickget index e014243455..fd56df33bc 100755 --- a/quickget +++ b/quickget @@ -148,7 +148,9 @@ function error_specify_os() { function os_supported() { if [[ ! "$(os_support)" =~ ${OS} ]]; then - error_not_supported_os + echo -e "ERROR! ${OS} is not a supported OS.\n" + os_support | fold -s -w "$(tput cols)" + exit 1 fi } @@ -195,12 +197,6 @@ function error_specify_path() { exit 1 } -function error_not_supported_os() { - echo -e "ERROR! ${OS} is not a supported OS.\n" - os_support | fold -s -w "$(tput cols)" - exit 1 -} - function error_not_supported_release() { if [[ ! "${RELEASES[*]}" =~ ${RELEASE} ]]; then echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release." From dec49fa2c0b8b80aea367f9dd1b1f4bdcc3e8577 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:11:23 +0100 Subject: [PATCH 17/38] style(quickget): make not supported release and edition output consistent --- quickget | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quickget b/quickget index fd56df33bc..d72148887f 100755 --- a/quickget +++ b/quickget @@ -199,8 +199,8 @@ function error_specify_path() { function error_not_supported_release() { if [[ ! "${RELEASES[*]}" =~ ${RELEASE} ]]; then - echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release." - echo -n 'Supported releases: ' + echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release.\n" + echo -n ' - Supported releases: ' "releases_${OS}" exit 1 fi @@ -209,7 +209,7 @@ function error_not_supported_release() { function error_not_supported_edition() { if [[ ! "${EDITIONS[*]}" =~ ${EDITION} ]]; then echo -e "ERROR! ${EDITION} is not a supported $(pretty_name "${OS}") edition\n" - echo -n ' - Editions: ' + echo -n ' - Supported editions: ' for EDITION in "${EDITIONS[@]}"; do echo -n "${EDITION} " done From efeb72610d138bd6462f7eb828a9dbc34d758c52 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:16:42 +0100 Subject: [PATCH 18/38] refactor(quickget): remove unnecessary string literals --- quickget | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/quickget b/quickget index d72148887f..675726e203 100755 --- a/quickget +++ b/quickget @@ -139,8 +139,8 @@ function os_homepage() { } function error_specify_os() { - echo 'ERROR! You must specify an operating system.' - echo '- Supported Operating Systems:' + echo "ERROR! You must specify an operating system." + echo "- Supported Operating Systems:" os_support | fold -s -w "$(tput cols)" echo -e "\nTo see all possible arguments, use:\n quickget -h or quickget --help" exit 1 @@ -155,7 +155,7 @@ function os_supported() { } function error_specify_release() { - echo 'ERROR! You must specify a release.' + echo "ERROR! You must specify a release." case ${OS} in *ubuntu-server*) echo -n ' - Releases: ' @@ -192,7 +192,7 @@ function error_specify_edition() { #TODO: Not yet used! function error_specify_path() { - echo 'ERROR! You must specify path.' + echo "ERROR! You must specify path." error_specify_os exit 1 } @@ -426,7 +426,7 @@ function test_all() { if [ "${OPERATION}" == "show" ]; then test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" elif [ "${OPERATION}" == "test" ]; then - CHECK=$(web_check "${URL}" && echo 'PASS' || echo 'FAIL') + CHECK=$(web_check "${URL}" && echo "PASS" || echo "FAIL") test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" "${CHECK}" fi done @@ -455,7 +455,7 @@ function test_all() { if [ "${OPERATION}" == "show" ]; then test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" elif [ "${OPERATION}" == "test" ]; then - CHECK=$(web_check "${URL}" && echo 'PASS' || echo 'FAIL') + CHECK=$(web_check "${URL}" && echo "PASS" || echo "FAIL") test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" "${CHECK}" fi fi @@ -1253,7 +1253,7 @@ function web_get() { test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" exit 0 elif [ "${OPERATION}" == "test" ]; then - CHECK=$(web_check "${URL}" && echo 'PASS' || echo 'FAIL') + CHECK=$(web_check "${URL}" && echo "PASS" || echo "FAIL") test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" "${CHECK}" exit 0 elif [ "${OPERATION}" == "download" ]; then @@ -1317,7 +1317,7 @@ function zsync_get() { test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" exit 0 elif [ "${OPERATION}" == "test" ]; then - CHECK=$(web_check "${URL}" && echo 'PASS' || echo 'FAIL') + CHECK=$(web_check "${URL}" && echo "PASS" || echo "FAIL") test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}" "${CHECK}" exit 0 elif command -v zsync &>/dev/null; then @@ -2081,7 +2081,7 @@ function get_macos() { if [ "${skipVerification,,}" != "y" ] && [ "${skipVerification,,}" != "yes" ]; then exit 1 fi - echo 'Skipping verification' && skipVerification="true" + echo "Skipping verification" && skipVerification="true" fi OpenCore_qcow2="https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2" @@ -2107,7 +2107,7 @@ function get_macos() { test_result "${OS}" "${RELEASE}" "" "${downloadLink}" exit 0 elif [ "${OPERATION}" == "test" ]; then - CHECK=$(web_check "${downloadLink}" --header "Host: oscdn.apple.com" --header "Connection: close" --header "User-Agent: InternetRecovery/1.0" --header "Cookie: AssetToken=${downloadSession}" && echo 'PASS' || echo 'FAIL') + CHECK=$(web_check "${downloadLink}" --header "Host: oscdn.apple.com" --header "Connection: close" --header "User-Agent: InternetRecovery/1.0" --header "Cookie: AssetToken=${downloadSession}" && echo "PASS" || echo "FAIL") test_result "${OS}" "${RELEASE}" "" "${downloadLink}" "${CHECK}" exit 0 elif [ "${OPERATION}" == "download" ]; then From 188e88f832983561f814772a08553173bea9b571 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:18:23 +0100 Subject: [PATCH 19/38] fix(quickget): disable shellcheck SC2317 for cleanup() https://www.shellcheck.net/wiki/SC2317 --- quickget | 1 + 1 file changed, 1 insertion(+) diff --git a/quickget b/quickget index 675726e203..3806e54123 100755 --- a/quickget +++ b/quickget @@ -1,6 +1,7 @@ #!/usr/bin/env bash export LC_ALL=C +# shellcheck disable=SC2317 function cleanup() { if [ -n "$(jobs -p)" ]; then kill "$(jobs -p)" 2>/dev/null From b8bf99da898c7d4a9cb6a64a6f3aafa92027ccaa Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:19:36 +0100 Subject: [PATCH 20/38] fix(quickget): make show_os_info() shellcheck compliant https://www.shellcheck.net/wiki/SC2086 --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 3806e54123..c2c8fa8703 100755 --- a/quickget +++ b/quickget @@ -124,7 +124,7 @@ function os_info() { function show_os_info() { while getopts ":12345" opt; do case $opt in - 1|2|3|4|5) os_info "${2}" | cut -d'|' -f${opt};; + 1|2|3|4|5) os_info "${2}" | cut -d'|' -f "${opt}";; *) error_not_supported_argument;; esac done From 3146193699fa5e697ab47ce7d25ccd8b7250742b Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:23:47 +0100 Subject: [PATCH 21/38] fix(quickget): make editions parsing shellcheck SC2207 compliant https://www.shellcheck.net/wiki/SC2207 --- quickget | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quickget b/quickget index c2c8fa8703..8948beebc8 100755 --- a/quickget +++ b/quickget @@ -3532,7 +3532,8 @@ if [ -n "${2}" ]; then # If the OS has an editions_() function, use it. if [[ $(type -t "editions_${OS}") == function ]]; then validate_release "releases_${OS}" - EDITIONS=($(editions_${OS})) + EDITIONS=("$(editions_${OS})") + # Default to the first edition if none is specified. EDITION=${EDITIONS[0]} if [ -n "${3}" ]; then EDITION="${3}" From 9418f9c2ab359d0feec4f7cd9dc5f28492618664 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:33:53 +0100 Subject: [PATCH 22/38] fix(quickget): disable shellcheck SC2207 warnings for ubuntu releases https://www.shellcheck.net/wiki/SC2207 --- quickget | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/quickget b/quickget index 8948beebc8..6d2ed1e2f7 100755 --- a/quickget +++ b/quickget @@ -1108,8 +1108,10 @@ function releases_ubuntu() { local SUPPORTED_VERSIONS=() local EOL_VERSIONS=() VERSION_DATA="$(IFS=$'\n' web_pipe https://api.launchpad.net/devel/ubuntu/series | jq -r '.entries[]')" - SUPPORTED_VERSIONS=($(IFS=$'\n' jq -r 'select(.status=="Supported" or .status=="Current Stable Release") | .version' <<<${VERSION_DATA} | sort)) - EOL_VERSIONS=($(IFS=$'\n' jq -r 'select(.status=="Obsolete") | .version' <<<${VERSION_DATA} | sort)) + # shellcheck disable=SC2207 + SUPPORTED_VERSIONS=($(IFS=$'\n' jq -r 'select(.status=="Supported" or .status=="Current Stable Release") | .version' <<<"${VERSION_DATA}" | sort)) + # shellcheck disable=SC2207 + EOL_VERSIONS=($(IFS=$'\n' jq -r 'select(.status=="Obsolete") | .version' <<<"${VERSION_DATA}" | sort)) case "${OS}" in ubuntu) echo "${SUPPORTED_VERSIONS[@]}" daily-live "${EOL_VERSIONS[@]/#/eol-}";; @@ -1127,6 +1129,7 @@ function releases_ubuntu() { function releases_ubuntu-server() { local ALL_VERSIONS=() + # shellcheck disable=SC2207 ALL_VERSIONS=($(IFS=$'\n' web_pipe http://releases.ubuntu.com/streams/v1/com.ubuntu.releases:ubuntu-server.json | jq -r '.products[] | select(.arch=="amd64") | .version' | sort -rV)) echo daily-live "${ALL_VERSIONS[@]}" } From a51410fc5af91db27cdd80a4cfaaec8b7546d96d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:43:39 +0100 Subject: [PATCH 23/38] fix(quickget): disable SC2317 as many functions are called indirectly https://www.shellcheck.net/wiki/SC2317 --- quickget | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quickget b/quickget index 6d2ed1e2f7..24b8604110 100755 --- a/quickget +++ b/quickget @@ -1,7 +1,10 @@ #!/usr/bin/env bash +# SC2317: Command appears to be unreachable. Check usage (or ignore if invoked indirectly). +# - https://www.shellcheck.net/wiki/SC2317 +# - Disable globally because many functions are called indirectly +# shellcheck disable=SC2317 export LC_ALL=C -# shellcheck disable=SC2317 function cleanup() { if [ -n "$(jobs -p)" ]; then kill "$(jobs -p)" 2>/dev/null From 7af6ee0404087e281cca8ac183ab89617a974306 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:51:20 +0100 Subject: [PATCH 24/38] fix(quickemu): disable shellcheck SC2054 and SC2140 warning https://www.shellcheck.net/wiki/SC2054 https://www.shellcheck.net/wiki/SC2140 --- quickemu | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/quickemu b/quickemu index c0efb8a5b2..7b26e377c8 100755 --- a/quickemu +++ b/quickemu @@ -400,6 +400,7 @@ function vm_boot() { if [ -n "${EFI_CODE}" ] || [ ! -e "${EFI_CODE}" ]; then case ${secureboot} in on) + # shellcheck disable=SC2054,SC2140 ovmfs=("/usr/share/OVMF/OVMF_CODE_4M.secboot.fd","/usr/share/OVMF/OVMF_VARS_4M.fd" \ "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd","/usr/share/edk2/ovmf/OVMF_VARS.fd" \ "/usr/share/OVMF/x64/OVMF_CODE.secboot.fd","/usr/share/OVMF/x64/OVMF_VARS.fd" \ @@ -410,6 +411,7 @@ function vm_boot() { ) ;; *) + # shellcheck disable=SC2054,SC2140 ovmfs=("/usr/share/OVMF/OVMF_CODE_4M.fd","/usr/share/OVMF/OVMF_VARS_4M.fd" \ "/usr/share/edk2/ovmf/OVMF_CODE.fd","/usr/share/edk2/ovmf/OVMF_VARS.fd" \ "/usr/share/OVMF/OVMF_CODE.fd","/usr/share/OVMF/OVMF_VARS.fd" \ @@ -992,6 +994,7 @@ function vm_boot() { # Only enable SPICE is using SPICE display if [ "${OUTPUT}" == "none" ] || [ "${OUTPUT}" == "spice" ] || [ "${OUTPUT}" == "spice-app" ]; then + # shellcheck disable=SC2054 args+=(-spice ${SPICE} -device virtio-serial-pci -chardev socket,id=agent0,path="${VMDIR}/${VMNAME}-agent.sock",server=on,wait=off @@ -1002,6 +1005,7 @@ function vm_boot() { -device virtserialport,chardev=webdav0,name=org.spice-space.webdav.0) fi + # shellcheck disable=SC2054 args+=(-device virtio-rng-pci,rng=rng0 -object rng-random,id=rng0,filename=/dev/urandom -device ${USB_HOST_PASSTHROUGH_CONTROLLER},id=spicepass @@ -1016,6 +1020,7 @@ function vm_boot() { ) if "${QEMU}" -chardev spicevmc,id=ccid,name= 2>&1 | grep -q smartcard; then + # shellcheck disable=SC2054 args+=(-chardev spicevmc,id=ccid,name=smartcard -device ccid-card-passthru,chardev=ccid) else @@ -1025,8 +1030,10 @@ function vm_boot() { # setup usb-controller [ -z "${USB_CONTROLLER}" ] && USB_CONTROLLER="$usb_controller" if [ "${USB_CONTROLLER}" == "ehci" ]; then + # shellcheck disable=SC2054 args+=(-device usb-ehci,id=input) elif [ "${USB_CONTROLLER}" == "xhci" ]; then + # shellcheck disable=SC2054 args+=(-device qemu-xhci,id=input) elif [ -z "${USB_CONTROLLER}" ] || [ "${USB_CONTROLLER}" == "none" ]; then # add nothing @@ -1039,8 +1046,10 @@ function vm_boot() { # @INFO: must be set after usb-controller [ -z "${KEYBOARD}" ] && KEYBOARD="$keyboard" if [ "${KEYBOARD}" == "usb" ]; then + # shellcheck disable=SC2054 args+=(-device usb-kbd,bus=input.0) elif [ "${KEYBOARD}" == "virtio" ]; then + # shellcheck disable=SC2054 args+=(-device virtio-keyboard) elif [ "${KEYBOARD}" == "ps2" ] || [ -z "${KEYBOARD}" ]; then # add nothing, default is ps/2 keyboard @@ -1067,10 +1076,13 @@ function vm_boot() { # @INFO: must be set after usb-controller [ -z "${MOUSE}" ] && MOUSE="$mouse" if [ "${MOUSE}" == "usb" ]; then + # shellcheck disable=SC2054 args+=(-device usb-mouse,bus=input.0) elif [ "${MOUSE}" == "tablet" ]; then + # shellcheck disable=SC2054 args+=(-device usb-tablet,bus=input.0) elif [ "${MOUSE}" == "virtio" ]; then + # shellcheck disable=SC2054 args+=(-device virtio-mouse) elif [ "${MOUSE}" == "ps2" ] || [ -z "${MOUSE}" ]; then # add nothing, default is ps/2 mouse @@ -1189,6 +1201,7 @@ function vm_boot() { args+=(-drive if=ide,index=0,media=disk,file="${disk_img}") elif [ "${guest_os}" == "windows-server" ]; then + # shellcheck disable=SC2054,SC2206 args+=(-device ide-hd,drive=SystemDisk -drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO}) @@ -1244,11 +1257,13 @@ function vm_boot() { echo " - Monitor: All Monitor-Telnet ports have been exhausted." else MONITOR_TELNET_PORT="${temp_port}" + # shellcheck disable=SC2054 args+=(-monitor telnet:${MONITOR_TELNET_HOST}:${MONITOR_TELNET_PORT},server,nowait) echo " - Monitor: On host: telnet ${MONITOR_TELNET_HOST} ${MONITOR_TELNET_PORT}" echo "monitor-telnet,${MONITOR_TELNET_PORT},${MONITOR_TELNET_HOST}" >> "${VMDIR}/${VMNAME}.ports" fi elif [ "${MONITOR}" == "socket" ]; then + # shellcheck disable=SC2054,SC2206 args+=(-monitor unix:${VM_MONITOR_SOCKETPATH},server,nowait) echo " - Monitor: On host: nc -U \"${VM_MONITOR_SOCKETPATH}\"" echo " or : socat -,echo=0,icanon=0 unix-connect:${VM_MONITOR_SOCKETPATH}" @@ -1281,11 +1296,13 @@ function vm_boot() { echo " - Serial: All Serial-Telnet ports have been exhausted." else SERIAL_TELNET_PORT="${temp_port}" + # shellcheck disable=SC2054,SC2206 args+=(-serial telnet:${SERIAL_TELNET_HOST}:${SERIAL_TELNET_PORT},server,nowait) echo " - Serial: On host: telnet ${SERIAL_TELNET_HOST} ${SERIAL_TELNET_PORT}" echo "serial-telnet,${SERIAL_TELNET_PORT},${SERIAL_TELNET_HOST}" >> "${VMDIR}/${VMNAME}.ports" fi elif [ "${SERIAL}" == "socket" ]; then + # shellcheck disable=SC2054,SC2206 args+=(-serial unix:${VM_SERIAL_SOCKETPATH},server,nowait) echo " - Serial: On host: nc -U \"${VM_SERIAL_SOCKETPATH}\"" echo " or : socat -,echo=0,icanon=0 unix-connect:${VM_SERIAL_SOCKETPATH}" From 14ea71cc4fd5ba14dae6861a28d93d454ad81bcc Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 11:59:24 +0100 Subject: [PATCH 25/38] fix(quickemu): resolve shellcheck SC2155 warnings https://www.shellcheck.net/wiki/SC2155 --- quickemu | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/quickemu b/quickemu index 7b26e377c8..4ba4b7515d 100755 --- a/quickemu +++ b/quickemu @@ -237,6 +237,7 @@ function vm_boot() { local OSK="" local SOUND="" local SMM="${SMM:-off}" + local TEMP_PORT="" local USB_HOST_PASSTHROUGH_CONTROLLER="qemu-xhci" local VGA="" local VIDEO="" @@ -1252,11 +1253,11 @@ function vm_boot() { echo " - Monitor: (off)" elif [ "${MONITOR}" == "telnet" ]; then # Find a free port to expose monitor-telnet to the guest - local temp_port="$(get_port ${MONITOR_TELNET_PORT} 9)" - if [ -z "${temp_port}" ]; then + TEMP_PORT="$(get_port ${MONITOR_TELNET_PORT} 9)" + if [ -z "${TEMP_PORT}" ]; then echo " - Monitor: All Monitor-Telnet ports have been exhausted." else - MONITOR_TELNET_PORT="${temp_port}" + MONITOR_TELNET_PORT="${TEMP_PORT}" # shellcheck disable=SC2054 args+=(-monitor telnet:${MONITOR_TELNET_HOST}:${MONITOR_TELNET_PORT},server,nowait) echo " - Monitor: On host: telnet ${MONITOR_TELNET_HOST} ${MONITOR_TELNET_PORT}" @@ -1291,11 +1292,11 @@ function vm_boot() { args+=(-serial none) elif [ "${SERIAL}" == "telnet" ]; then # Find a free port to expose serial-telnet to the guest - local temp_port="$(get_port ${SERIAL_TELNET_PORT} 9)" - if [ -z "${temp_port}" ]; then + TEMP_PORT="$(get_port ${SERIAL_TELNET_PORT} 9)" + if [ -z "${TEMP_PORT}" ]; then echo " - Serial: All Serial-Telnet ports have been exhausted." else - SERIAL_TELNET_PORT="${temp_port}" + SERIAL_TELNET_PORT="${TEMP_PORT}" # shellcheck disable=SC2054,SC2206 args+=(-serial telnet:${SERIAL_TELNET_HOST}:${SERIAL_TELNET_PORT},server,nowait) echo " - Serial: On host: telnet ${SERIAL_TELNET_HOST} ${SERIAL_TELNET_PORT}" From f0a3725b242167359e0fe376f765feaf60080a68 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 12:06:56 +0100 Subject: [PATCH 26/38] fix(quickemu): resolve shellcheck SC2206 warnings https://www.shellcheck.net/wiki/SC2206 --- quickemu | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/quickemu b/quickemu index 4ba4b7515d..91ffac90ff 100755 --- a/quickemu +++ b/quickemu @@ -996,7 +996,7 @@ function vm_boot() { # Only enable SPICE is using SPICE display if [ "${OUTPUT}" == "none" ] || [ "${OUTPUT}" == "spice" ] || [ "${OUTPUT}" == "spice-app" ]; then # shellcheck disable=SC2054 - args+=(-spice ${SPICE} + args+=(-spice "${SPICE}" -device virtio-serial-pci -chardev socket,id=agent0,path="${VMDIR}/${VMNAME}-agent.sock",server=on,wait=off -device virtserialport,chardev=agent0,name=org.qemu.guest_agent.0 @@ -1009,7 +1009,7 @@ function vm_boot() { # shellcheck disable=SC2054 args+=(-device virtio-rng-pci,rng=rng0 -object rng-random,id=rng0,filename=/dev/urandom - -device ${USB_HOST_PASSTHROUGH_CONTROLLER},id=spicepass + -device "${USB_HOST_PASSTHROUGH_CONTROLLER}",id=spicepass -chardev spicevmc,id=usbredirchardev1,name=usbredir -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 -chardev spicevmc,id=usbredirchardev2,name=usbredir @@ -1063,7 +1063,7 @@ function vm_boot() { # @INFO: When using the VNC display, you must use the -k parameter to set the keyboard layout if you are not using en-us. [ -z "${KEYBOARD_LAYOUT}" ] && KEYBOARD_LAYOUT="$keyboard_layout" if [ -n "${KEYBOARD_LAYOUT}" ]; then - args+=(-k ${KEYBOARD_LAYOUT}) + args+=(-k "${KEYBOARD_LAYOUT}") fi # FIXME: Check for device availability. qemu will fail to start otherwise @@ -1259,7 +1259,7 @@ function vm_boot() { else MONITOR_TELNET_PORT="${TEMP_PORT}" # shellcheck disable=SC2054 - args+=(-monitor telnet:${MONITOR_TELNET_HOST}:${MONITOR_TELNET_PORT},server,nowait) + args+=(-monitor telnet:"${MONITOR_TELNET_HOST}:${MONITOR_TELNET_PORT}",server,nowait) echo " - Monitor: On host: telnet ${MONITOR_TELNET_HOST} ${MONITOR_TELNET_PORT}" echo "monitor-telnet,${MONITOR_TELNET_PORT},${MONITOR_TELNET_HOST}" >> "${VMDIR}/${VMNAME}.ports" fi @@ -1316,6 +1316,7 @@ function vm_boot() { EXTRA_ARGS="${extra_args}" fi if [ -n "${EXTRA_ARGS}" ]; then + # shellcheck disable=SC2206 args+=(${EXTRA_ARGS}) fi From 95e2d3c4376222afdb3145477af37a37ce2351b5 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 12:08:43 +0100 Subject: [PATCH 27/38] fix(quickemu): resolve shellcheck SC2236 https://www.shellcheck.net/wiki/SC2236 --- quickemu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quickemu b/quickemu index 91ffac90ff..f9065b0013 100755 --- a/quickemu +++ b/quickemu @@ -446,7 +446,7 @@ function vm_boot() { echo " Please install OVMF firmware." exit 1 fi - if [ ! -z "${EFI_EXTRA_VARS}" ]; then + if [ -n "${EFI_EXTRA_VARS}" ]; then if [ ! -e "${EFI_EXTRA_VARS}" ]; then echo " - EFI: ERROR! EFI_EXTRA_VARS file ${EFI_EXTRA_VARS} does not exist." exit 1 @@ -1694,7 +1694,7 @@ else shift shift;; -screenpct|--screenpct) - if [ ! -z "${2##*[!0-9]*}" ] ; then + if [ -n "${2##*[!0-9]*}" ] ; then if [[ ${2} -ge 25 && ${2} -lt 100 ]] ; then SCREENPCT=${2} else From 076b1944b0b49d0d3e76c8ea842eb18050571a5f Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 12:13:22 +0100 Subject: [PATCH 28/38] fix(quickemu): resolve shellcheck SC2069 warnings https://www.shellcheck.net/wiki/SC2069 --- quickemu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickemu b/quickemu index f9065b0013..48da3ff14b 100755 --- a/quickemu +++ b/quickemu @@ -1943,7 +1943,7 @@ if [ -n "${VM}" ] && [ -e "${VM}" ]; then VM_UP=0 if [ -r "${VMDIR}/${VMNAME}.pid" ]; then VM_PID=$(head -c50 "${VMDIR}/${VMNAME}.pid") - kill -0 ${VM_PID} 2>&1 >/dev/null + kill -0 ${VM_PID} > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "VM already started!" VM_UP=1 From 2beef37cb944879a3dab0b87b446f1db1f0b212c Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 12:14:25 +0100 Subject: [PATCH 29/38] fix(quickemu): remove unused variable monitor_cmd SC2034 https://www.shellcheck.net/wiki/SC2034 --- quickemu | 1 - 1 file changed, 1 deletion(-) diff --git a/quickemu b/quickemu index 48da3ff14b..f8ebcc1652 100755 --- a/quickemu +++ b/quickemu @@ -1581,7 +1581,6 @@ public_dir="" monitor="socket" monitor_telnet_port="4440" monitor_telnet_host="localhost" -monitor_cmd="" serial="socket" serial_telnet_port="6660" serial_telnet_host="localhost" From cea933b29092c1bb09c478fa3a04721bc73bff2d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 13:23:49 +0100 Subject: [PATCH 30/38] fix(quickemu): correct shellcheck SC2207 warnings https://www.shellcheck.net/wiki/SC2207 --- quickemu | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/quickemu b/quickemu index f8ebcc1652..8812ca91ad 100755 --- a/quickemu +++ b/quickemu @@ -1487,9 +1487,12 @@ function parse_ports_from_file { local FILE="${VMDIR}/${VMNAME}.ports" # parse ports - local port_name=( $(cat "$FILE" | cut -d, -f1) ) - local port_number=( $(cat "$FILE" | cut -d, -f2) ) - local host_name=( $(cat "$FILE" | gawk 'FS="," {print $3,"."}') ) + # shellcheck disable=SC2207 + local port_name=( $(cat "${FILE}" | cut -d',' -f 1) ) + # shellcheck disable=SC2207 + local port_number=( $(cat "${FILE}" | cut -d',' -f 2) ) + # shellcheck disable=SC2207 + local host_name=( $(cat "${FILE}" | gawk 'FS="," {print $3,"."}') ) for ((i=0; i<${#port_name[@]}; i++)); do if [ "${port_name[$i]}" == "ssh" ]; then From 11a85686a333265206899b7f2b173f9c2489203f Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 13:50:15 +0100 Subject: [PATCH 31/38] fix(quickget): resolve some shellcheck SC2086 notices https://www.shellcheck.net/wiki/SC2086 --- quickget | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/quickget b/quickget index 24b8604110..51a618b13a 100755 --- a/quickget +++ b/quickget @@ -711,6 +711,7 @@ function releases_debian() { local OLD="" NEW=$(web_pipe "https://cdimage.debian.org/debian-cd/" | grep '\.[0-9]/' | cut -d'>' -f 9 | cut -d'/' -f 1) OLD=$(web_pipe "https://cdimage.debian.org/cdimage/archive/" | grep -e '>[1-9][0-9]\.' | grep -v 'live' | grep -v NEVER | cut -d'>' -f 9 | cut -d'/' -f 1 | tac | head -20) + #shellcheck disable=SC2086 echo ${NEW} ${OLD} } @@ -1534,7 +1535,7 @@ EOF fi fi echo -e "\nTo start your $(pretty_name "${OS}") virtual machine run:" - if [ ${OS} == "slint" ]; then + if [ "${OS}" == "slint" ]; then echo -e " quickemu --vm ${CONF_FILE}\nTo start Slint with braille support run:\n quickemu --vm --braille --display sdl ${CONF_FILE}" else echo " quickemu --vm ${CONF_FILE}" @@ -1862,6 +1863,7 @@ function get_fedora() { Server|Kinoite|Onyx|Silverblue|Sericea|Workstation) VARIANT="${EDITION}";; *) VARIANT="Spins";; esac + #shellcheck disable=SC2086 JSON=$(web_pipe "https://getfedora.org/releases.json" | jq '.[] | select(.variant=="'${VARIANT}'" and .subvariant=="'"${EDITION}"'" and .arch=="x86_64" and .version=="'"${RELEASE}"'")') URL=$(echo "${JSON}" | jq -r '.link' | head -n1) HASH=$(echo "${JSON}" | jq -r '.sha256' | head -n1) From 5de87e7ae82fa70c126173e587d77c399f568026 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 13:50:53 +0100 Subject: [PATCH 32/38] fix(quickget): update get_manjaro() to support new sway release --- quickget | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/quickget b/quickget index 51a618b13a..2ef6bc7244 100755 --- a/quickget +++ b/quickget @@ -2171,18 +2171,26 @@ function get_manjaro() { local ISO="" local MANIFEST="" local URL="" - local TYPE="" - case ${RELEASE} in - sway) MANIFEST="$(web_pipe https://mirror.manjaro-sway.download/manjaro-sway/release.json)";; - gnome|xfce|plasma) TYPE="official";; - *) TYPE="community";; + local TYPE="official" + MANIFEST="$(web_pipe https://gitlab.manjaro.org/web/iso-info/-/raw/master/file-info.json)" + case "${RELEASE}" in + sway) + MANIFEST="$(web_pipe https://mirror.manjaro-sway.download/manjaro-sway/release.json)" + TYPE="sway" + ;; + cinnamon|i3) TYPE="community";; esac - [[ ${RELEASE} != "sway" ]] && MANIFEST="$(web_pipe https://gitlab.manjaro.org/web/iso-info/-/raw/master/file-info.json)" - [[ ${EDITION} == "minimal" && ${TYPE} != "sway" ]] && EDITION=".minimal" || EDITION="" - if [[ ${RELEASE} != "sway" ]]; then - URL="$(echo ${MANIFEST} | jq -r .${TYPE}.${RELEASE}${EDITION}.image)" + + if [ "${EDITION}" == "minimal" ] && [ "${TYPE}" != "sway" ]; then + EDITION=".minimal" + else + EDITION="" + fi + + if [ "${RELEASE}" == "sway" ]; then + URL=$(echo "${MANIFEST}" | jq -r '.[] | select(.name|test("^manjaro-sway-.*[.]iso$")) | .url') else - URL=$(echo ${MANIFEST} | jq -r '.[] | select(.name|test("^manjaro-sway-.*[.]iso$")) | select(.name|contains("unstable")|not) | .url') + URL="$(echo "${MANIFEST}" | jq -r ."${TYPE}.${RELEASE}${EDITION}".image)" fi HASH=$(web_pipe "${URL}.sha512" | cut_1) echo "${URL} ${HASH}" From b0c07a6c4f37c6674963a31ad65382903f4447a7 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 13:53:53 +0100 Subject: [PATCH 33/38] fix(quickget): resolve shellcheck SC2004 notice https://www.shellcheck.net/wiki/SC2004 --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 2ef6bc7244..793fcbc949 100755 --- a/quickget +++ b/quickget @@ -2018,7 +2018,7 @@ function generate_id() { local macRecoveryID="" local TYPE="${1}" local valid_chars=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F") - for ((i=0; i<$TYPE; i++)); do + for ((i=0; i Date: Tue, 7 May 2024 14:24:32 +0100 Subject: [PATCH 34/38] fix(quickget): make --check work for releases and editions --- quickget | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quickget b/quickget index 793fcbc949..51f08fc28e 100755 --- a/quickget +++ b/quickget @@ -3521,10 +3521,11 @@ case "${1}" in for OS in $(os_support); do (test_all "${OS}") done + exit 0 elif [ -z "${2}" ]; then test_all "${1}" + exit 0 fi - exit 0 ;; --list-csv|-list-csv|list|list_csv) list_csv;; --list-json|-list-json|list_json) list_json;; From b76117ad37b34ede389f8235c8bde6d9af4f8250 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 17:23:31 +0100 Subject: [PATCH 35/38] style: correct AlmaLinux pretty name --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 51f08fc28e..8526234161 100755 --- a/quickget +++ b/quickget @@ -22,7 +22,7 @@ function os_info() { SIMPLE_NAME="${1}" case ${SIMPLE_NAME} in #name) INFO="PrettyName|BasedOf|Credentials|Homepage|Info";; - alma) INFO="Alma Linux|Fedora,RedHat|-|https://almalinux.org/|Community owned and governed, forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. AlmaLinux OS is binary compatible with RHEL®.";; + alma) INFO="AlmaLinux|Fedora,RedHat|-|https://almalinux.org/|Community owned and governed, forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. AlmaLinux OS is binary compatible with RHEL®.";; alpine) INFO="Alpine Linux|Independent|-|https://alpinelinux.org/|Security-oriented, lightweight Linux distribution based on musl libc and busybox.";; android) INFO="Android x86|Independent|-|https://www.android-x86.org/|Port Android Open Source Project to x86 platform.";; antix) INFO="Antix|Debian|-|https://antixlinux.com/|Fast, lightweight and easy to install systemd-free linux live CD distribution based on Debian Stable for Intel-AMD x86 compatible systems.";; From c628a42a6bb09e041ebe5067fe11b802eee8363e Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 17:23:58 +0100 Subject: [PATCH 36/38] style: correct Crunchbangplusplus pretty name --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index 8526234161..a31e72a70b 100755 --- a/quickget +++ b/quickget @@ -40,7 +40,7 @@ function os_info() { cachyos) INFO="CachyOS|Arch|-|https://cachyos.org/|Designed to deliver lightning-fast speeds and stability, ensuring a smooth and enjoyable computing experience every time you use it.";; centos-stream) INFO="CentOS Stream|Fedora,RedHat|-|https://www.centos.org/centos-stream/|Continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL.";; chimeralinux) INFO="Chimera Linux|Independent|anon:chimera root:chimera|https://chimera-linux.org/|Modern, general-purpose non-GNU Linux distribution.";; - crunchbang++) INFO="#!++|Debian|-|https://www.crunchbangplusplus.org/|The classic minimal crunchbang feel, now with debian 12 bookworm.";; + crunchbang++) INFO="Crunchbangplusplus|Debian|-|https://www.crunchbangplusplus.org/|The classic minimal crunchbang feel, now with debian 12 bookworm.";; debian) INFO="Debian|Independent|-|https://www.debian.org/|Complete Free Operating System with perfect level of ease of use and stability.";; deepin) INFO="Deepin|Debian|-|https://www.deepin.org/|Beautiful UI design, intimate human-computer interaction, and friendly community environment make you feel at home.";; devuan) INFO="Devuan|Debian|-|https://www.devuan.org/|Fork of Debian without systemd that allows users to reclaim control over their system by avoiding unnecessary entanglements and ensuring Init Freedom.";; From 926d4f6679d6d8ae00daaa36588b442180abe21d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 17:24:18 +0100 Subject: [PATCH 37/38] style: correct HoloISO pretty name --- quickget | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickget b/quickget index a31e72a70b..06b7a99fe7 100755 --- a/quickget +++ b/quickget @@ -59,7 +59,7 @@ function os_info() { gnomeos) INFO="GNOME OS|Independent|-|https://os.gnome.org/|Alpha nightly bleeding edge distro of GNOME";; guix) INFO="Guix|Independent|-|https://guix.gnu.org/|Distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users.";; haiku) INFO="Haiku|Independent|-|https://www.haiku-os.org/|Specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.";; - holoiso) INFO="SteamOS HoloISO|Arch,SteamOS|-|https://github.com/HoloISO/holoiso|Bring the Steam Decks SteamOS Holo redistribution and provide a close-to-official SteamOS experience.";; + holoiso) INFO="HoloISO|Arch,SteamOS|-|https://github.com/HoloISO/holoiso|Bring the Steam Decks SteamOS Holo redistribution and provide a close-to-official SteamOS experience.";; kali) INFO="Kali|Debian|-|https://www.kali.org/|The most advanced Penetration Testing Distribution.";; kdeneon) INFO="KDE Neon|Debian,Ubuntu|-|https://neon.kde.org/|Latest and greatest of KDE community software packaged on a rock-solid base.";; kolibrios) INFO="KolibriOS|Independent|-|http://kolibrios.org/en/|Tiny yet incredibly powerful and fast operating system.";; From 4f5dca17a164551e57331de4f689647b7bb0e49d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Tue, 7 May 2024 17:25:11 +0100 Subject: [PATCH 38/38] chore: remove Whonix from os_info(); it doesn't have any generators --- quickget | 1 - 1 file changed, 1 deletion(-) diff --git a/quickget b/quickget index 06b7a99fe7..a41102fef3 100755 --- a/quickget +++ b/quickget @@ -115,7 +115,6 @@ function os_info() { vanillaos) INFO="Vanilla OS|Debian,Ubuntu|-|https://vanillaos.org/|Designed to be a reliable and productive operating system for your daily work.";; void) INFO="Void Linux|Independent|anon:voidlinux|https://voidlinux.org/|General purpose operating system. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources.";; vxlinux) INFO="VX Linux|Void|-|https://vxlinux.org/|Pre-configured, secure systemd-free Plasma desktop with focus on convenience, performance and simplicity. Based on the excellent Void Linux.";; - whonix) INFO="Whonix|Debian|-|https://www.whonix.org/|Superior Internet Privacy with Whonix™ As handy as an app - delivering maximum anonymity and security.";; windows) INFO="Windows|proprietary|-|https://www.microsoft.com/en-us/windows/|Whether you’re gaming, studying, running a business, or running a household, Windows helps you get it done.";; windows-server) INFO="Windows Server|proprietary|-|https://www.microsoft.com/en-us/windows-server/|Platform for building an infrastructure of connected applications, networks, and web services.";; xubuntu) INFO="Xubuntu|Ubuntu|-|https://xubuntu.org/|Elegant and easy to use operating system. Xubuntu comes with Xfce, which is a stable, light and configurable desktop environment.";;