feat: make curl a hard requirement of quickget

This commit is contained in:
Martin Wimpress 2024-04-20 11:17:25 +01:00 committed by Martin Wimpress
parent 4619b71b4e
commit 9e99b08a8c
1 changed files with 112 additions and 0 deletions

112
quickget
View File

@ -3683,6 +3683,118 @@ fi
LANGS=() LANGS=()
os_supported_release() {
if [[ ! " ${RELEASES[*]} " =~ " ${RELEASE} " ]]; then
echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release."
echo -n 'Supported releases: '
"releases_${OS}"
exit 1
fi
}
os_supported_edition() {
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
echo -n "${EDITION} "
done
echo ""
exit 1
fi
}
os_error_edition() {
echo -en "ERROR! You must specify an edition.\n - Editions: "
#TODO ERROR here
"editions_${OS}"
exit 1
}
os_supported_lang() {
echo -e "ERROR! ${LANG} is not a supported $(pretty_name "${OS}") language\n"
echo -n ' - Editions: '
for LANG in "${LANGS[@]}"; do
echo -n "${LANG} "
done
exit 1
}
handle_missing() {
# Handle odd missing Fedora combinations
if [[ $OS == fedora ]] ; then
if [[ ${RELEASE} = "33" && ${EDITION} = "i3" ]] || [[ ${RELEASE} = "34" && ${EDITION} = "Cinnamon" ]] || [[ "${RELEASE}" < "39" && ${EDITION} = "Onyx" ]]; then
echo "ERROR! Unsupported combination"
echo " Fedora ${RELEASE} ${EDITION} is not available, please choose another Release or Edition"
exit 1;
fi
fi
# Handle missing Manjaro Sway minimal
if [[ $OS == manjaro ]] ; then
if [[ ${RELEASE} == "sway" && ${EDITION} == "minimal" ]] ; then
echo "ERROR! Unsupported combination"
echo " Manjaro Sway does not have a minimal edition"
exit 1;
fi
fi
}
os_error() {
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
}
os_not_supported() {
echo -e "ERROR! ${OS} is not a supported OS.\n"
os_support | fold -s -w "$(tput cols)"
exit 1
}
os_path_error() {
echo 'ERROR! You must specify path.'
os_error
exit 1
}
os_error_release() {
echo 'ERROR! You must specify a release.'
case ${OS} in
*ubuntu-server*)
echo -n ' - Releases: '
releases_ubuntu-server | sed -Ee 's/eol-\S+//g' # hide eol releases
;;
*ubuntu*)
echo -n ' - Releases: '
releases_ubuntu | sed -Ee 's/eol-\S+//g' # hide eol releases
;;
*windows*)
echo -n ' - Releases: '
"releases_${OS}"
echo -n ' - Languages: '
"languages_${OS}" && echo "${LANGS[@]}"
;;
*)
echo -n ' - Releases: '
"releases_${OS}" | fold -s -w "$(tput cols)"
if [[ $(type -t "editions_${OS}") == function ]]; then
echo -n ' - Editions: '
"editions_${OS}" | fold -s -w "$(tput cols)"
fi
;;
esac
exit 1
}
CURL=$(command -v curl)
if [ ! -e "${CURL}" ]; then
echo "ERROR! curl not found. Please make install curl"
exit 1
fi
CURL_VERSION=$("${CURL}" --version | head -1 | cut -d' ' -f2)
if [ -n "${1}" ]; then if [ -n "${1}" ]; then
OS="${1,,}" OS="${1,,}"
if [ "${OS}" == "list" ] || [ "${OS}" == "list_csv" ]; then if [ "${OS}" == "list" ] || [ "${OS}" == "list_csv" ]; then