This commit is contained in:
Phil Clifford 2023-06-23 11:39:13 +10:00 committed by GitHub
commit 5a713e2ee0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 75 additions and 14 deletions

View File

@ -471,7 +471,7 @@ function vm_boot() {
# Make any OS specific adjustments
case ${guest_os} in
batocera|*bsd|freedos|haiku|linux|*solaris)
arosone|batocera|*bsd|freedos|haiku|linux|*solaris)
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
@ -479,11 +479,15 @@ function vm_boot() {
if [ "${guest_os}" == "freebsd" ] || [ "${guest_os}" == "ghostbsd" ]; then
MOUSE="usb"
elif [ "${guest_os}" == "batocera" ] || [ "${guest_os}" == "freedos" ] || [ "${guest_os}" == "haiku" ]; then
elif [ "${guest_os}" == "arosone" ] || [ "${guest_os}" == "batocera" ] || [ "${guest_os}" == "freedos" ] || [ "${guest_os}" == "haiku" ]; then
MACHINE_TYPE="pc"
NET_DEVICE="rtl8139"
fi
# if [ "${guest_os}" == "arosone" ] ; then
# #MAC_DISK_DEV="ide-hd,bus=ahci.0,drive=0"
# fi
if [ "${guest_os}" == "freedos" ] ; then
# fix for #382
SMM="on"
@ -1103,6 +1107,12 @@ function vm_boot() {
args+=(-device ahci,id=ahci
-device ide-hd,bus=ahci.0,drive=SystemDisk
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
elif [ "${guest_os}" == "arosone" ]; then
# shellcheck disable=SC2054,SC2206
args+=(-device ahci,id=ahci
-device ide-hd,bus=ahci.0,drive=SystemDisk
-drive id=SystemDisk,if=none,index=1,format=qcow2,file="${disk_img}" ${STATUS_QUO}
-boot order=d,menu=on)
elif [ "${guest_os}" == "batocera" ] ; then
# shellcheck disable=SC2054,SC2206

View File

@ -36,6 +36,7 @@ function pretty_name() {
archlinux) PRETTY_NAME="Arch Linux";;
archcraft) PRETTY_NAME="Archcraft";;
arcolinux) PRETTY_NAME="Arco Linux";;
arosone) PRETTY_NAME="AROS One";;
blendos) PRETTY_NAME="BlendOS";;
cachyos) PRETTY_NAME="CachyOS";;
centos-stream) PRETTY_NAME="CentOS Stream";;
@ -182,6 +183,7 @@ function os_support() {
archlinux \
archcraft \
arcolinux \
arosone \
batocera \
blendos \
cachyos \
@ -282,6 +284,10 @@ function editions_arcolinux() {
echo large small
}
function releases_arosone() {
echo 2.0
}
function releases_blendos() {
local RLIST
RLIST=$(curl -s https://api.github.com/repos/blend-os/blendOS/releases |grep tag_name | grep -o -E '[[:digit:]]+\.[[:digit:]]+' | tr ' \r\n' ' ')
@ -752,19 +758,37 @@ function web_get() {
exit 1
fi
if command -v aria2c &>/dev/null; then
if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" --dir "${DIR}" -o "${FILE}"; then
# if [[ "${URL}" =~ drive.google.com ]]; then
# ## Google Drive needs special handling for large files
# # FILEID="FILEIDENTIFIER"
# # FILENAME="FILENAME"
# FILEID="1ARgQSsxFxHWF7orcZvX27eBUY9mERPH2"
# #FILENAME="ArosOne-x86-v2.0-ISO-DVD.zip"
# echo "DEBUG: Downloading ${URL} to ${DIR}/${FILE} from Google Drive"
# local GDRESPONSE
# GDRESPONSE=$(curl -c /tmp/qggdcookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}")
# if ! curl -Lb /tmp/qggdcookie "https://drive.google.com/uc?export=download&$(echo ${GDRESPONSE}|grep -Po '(confirm=[a-zA-Z0-9\-_]+)')&id=${FILEID}" -o "${ISO}" --output-dir "${DIR}"; then
# echo "ERROR! Failed to download ${URL} with curl. Try running 'quickget' again."
# exit 1
# fi
# else
if command -v aria2c &>/dev/null; then
if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" --dir "${DIR}" -o "${FILE}"; then
echo #Necessary as aria2c in suppressed mode does not have new lines
echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again."
exit 1
fi
echo #Necessary as aria2c in suppressed mode does not have new lines
echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again."
exit 1
fi
echo #Necessary as aria2c in suppressed mode does not have new lines
else
if ! wget --quiet --continue --show-progress --progress=bar:force:noscroll "${URL}" -O "${DIR}/${FILE}"; then
echo "ERROR! Failed to download ${URL} with wget. Try running 'quickget' again."
exit 1
fi
fi
else
if ! wget --quiet --continue --show-progress --progress=bar:force:noscroll "${URL}" -O "${DIR}/${FILE}"; then
echo "ERROR! Failed to download ${URL} with wget. Try running 'quickget' again."
exit 1
fi
fi
# fi
}
function zsync_get() {
@ -815,6 +839,9 @@ function make_vm_config() {
IMAGE_FILE="${1}"
ISO_FILE="${2}"
case "${OS}" in
arosone)
GUEST="arosone"
IMAGE_TYPE="iso";;
batocera)
GUEST="batocera"
IMAGE_TYPE="img";;
@ -935,6 +962,9 @@ EOF
echo "disk_size=\"12G\"" >> "${CONF_FILE}"
echo "ram=\"2048M\"" >> "${CONF_FILE}"
;;
arosone|icaros)
echo "boot=\"legacy\"" >> "${CONF_FILE}"
;;
macos)
echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}"
# https://github.com/quickemu-project/quickemu/issues/438
@ -1042,6 +1072,20 @@ function get_arcolinux() {
echo "${URL}/${ISO} ${HASH}"
}
function get_arosone() {
local ISO=""
local URL=""
FILEID="1ARgQSsxFxHWF7orcZvX27eBUY9mERPH2"
FILENAME="ArosOne-x86-v2.0-ISO-DVD.zip"
#ISO=${FILENAME}
ISO="ArosOne-x86-v2.0-ISO-DVD.zip"
URL="https://drive.google.com/uc?export=download&id=${FILEID}"
local GDRESPONSE=$(curl -c /tmp/gdcookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}")
curl -s -Lb /tmp/gdcookie "https://drive.google.com/uc?export=download&$(echo ${GDRESPONSE}|grep -Po '(confirm=[a-zA-Z0-9\-_]+)')&id=${FILEID}" -o "${FILENAME}" --output-dir "${DIR}"
#echo "${URL}"/"${ISO}"
#make_vm_config "${FILENAME}"
}
function get_blendos() {
local EDITION="${1:-}"
local HASH=""
@ -2226,6 +2270,13 @@ create_vm() {
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
fi
if [ ${OS} == "arosone" ] && [[ $ISO =~ ".zip" ]]; then
unzip ${VM_PATH}/${ISO} -d ${VM_PATH}
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
mv "${VM_PATH}/${ISO}" "${VM_PATH}/${ISO// /_}" # remove spaces
ISO=${ISO// /_}
fi
make_vm_config "${ISO}"
}