Add Arch Linux to Quickget (#146)

* quickget: Add Arch Linux

* Update README to include Arch Linux

* Use JSON API to determine SHA1 hash and Arch ISO name

* Use wget instead of curl
pull/174/head
Philipp Kiemle 3 years ago committed by GitHub
parent cd908c5a85
commit fb832b2c8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      README.md
  2. 37
      quickget

@ -168,6 +168,7 @@ preferred flavour.
`quickget` also supports: `quickget` also supports:
* `archlinux`
* `elementary` * `elementary`
* `fedora` * `fedora`
* `linuxmint-cinnamon` * `linuxmint-cinnamon`

@ -34,6 +34,7 @@ function pretty_name() {
local PRETTY_NAME="" local PRETTY_NAME=""
SIMPLE_NAME="${1}" SIMPLE_NAME="${1}"
case ${SIMPLE_NAME} in case ${SIMPLE_NAME} in
archlinux) PRETTY_NAME="Arch Linux";;
elementary) PRETTY_NAME="elementary OS";; elementary) PRETTY_NAME="elementary OS";;
freebsd) PRETTY_NAME="FreeBSD";; freebsd) PRETTY_NAME="FreeBSD";;
linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";; linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";;
@ -123,7 +124,8 @@ function list_csv() {
} }
function os_support() { function os_support() {
echo elementary \ echo archlinux \
elementary \
freebsd \ freebsd \
fedora \ fedora \
kali \ kali \
@ -148,6 +150,10 @@ function os_support() {
xubuntu xubuntu
} }
function releases_archlinux() {
echo latest
}
function releases_elementary() { function releases_elementary() {
echo 6.0 echo 6.0
} }
@ -544,7 +550,10 @@ function make_vm_config() {
IMAGE_FILE="${1}" IMAGE_FILE="${1}"
ISO_FILE="${2}" ISO_FILE="${2}"
if [ "${OS}" == "elementary" ]; then if [ "${OS}" == "archlinux" ]; then
GUEST="linux"
IMAGE_TYPE="iso"
elif [ "${OS}" == "elementary" ]; then
GUEST="linux" GUEST="linux"
IMAGE_TYPE="iso" IMAGE_TYPE="iso"
elif [ "${OS}" == "freebsd" ]; then elif [ "${OS}" == "freebsd" ]; then
@ -616,6 +625,22 @@ EOF
start_vm_info start_vm_info
} }
function get_archlinux() {
local HASH=""
local ISO=""
local URL=""
local VERSION=""
validate_release "releases_archlinux"
VERSION=$(wget -q -O- 'https://archlinux.org/releng/releases/json/' | jq '.latest_version' | cut -d "\"" -f 2)
URL="https://mirror.rackspace.com/archlinux/iso/$VERSION"
ISO="archlinux-$VERSION-x86_64.iso"
HASH=$(wget -q -O- 'https://archlinux.org/releng/releases/json/' | jq '.releases[0].sha1_sum' | cut -d "\"" -f 2)
web_get "${URL}/${ISO}" "${VM_PATH}"
check_hash "${ISO}" "${HASH}"
make_vm_config "${ISO}"
}
function get_elementary() { function get_elementary() {
local ISO="" local ISO=""
local URL="" local URL=""
@ -997,7 +1022,9 @@ if [ -n "${2}" ]; then
RELEASE="${2,,}" RELEASE="${2,,}"
VM_PATH="${OS}-${RELEASE}" VM_PATH="${OS}-${RELEASE}"
if [ "${OS}" == "elementary" ]; then if [ "${OS}" == "archlinux" ]; then
get_archlinux
elif [ "${OS}" == "elementary" ]; then
get_elementary get_elementary
elif [ "${OS}" == "macos" ]; then elif [ "${OS}" == "macos" ]; then
get_macos get_macos
@ -1054,7 +1081,9 @@ if [ -n "${2}" ]; then
fi fi
else else
echo -n "ERROR! You must specify a release: " echo -n "ERROR! You must specify a release: "
if [ "${OS}" == "elementary" ]; then if [ "${OS}" == "archlinux" ]; then
releases_archlinux
elif [ "${OS}" == "elementary" ]; then
releases_elementary releases_elementary
elif [ "${OS}" == "freebsd" ]; then elif [ "${OS}" == "freebsd" ]; then
releases_freebsd releases_freebsd

Loading…
Cancel
Save