mirror of
https://github.com/dockur/windows.git
synced 2025-10-29 12:15:50 +00:00
feat: Detect platform from ISO
This commit is contained in:
parent
6cffdcca00
commit
0d2a0d03d5
1 changed files with 29 additions and 11 deletions
|
|
@ -624,6 +624,25 @@ setXML() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPlatform() {
|
||||||
|
|
||||||
|
local xml="$1"
|
||||||
|
local tag="ARCH"
|
||||||
|
local platform="x64"
|
||||||
|
local arch
|
||||||
|
|
||||||
|
arch=$(sed -n "/$tag/{s/.*<$tag>\(.*\)<\/$tag>.*/\1/;p}" <<< "$xml")
|
||||||
|
|
||||||
|
case "${arch,,}" in
|
||||||
|
"0" ) platform="x86" ;;
|
||||||
|
"9" ) platform="x64" ;;
|
||||||
|
"12" )platform="arm64" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$platform"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
selectVersion() {
|
selectVersion() {
|
||||||
|
|
||||||
local tag="$1"
|
local tag="$1"
|
||||||
|
|
@ -665,30 +684,29 @@ selectVersion() {
|
||||||
checkPlatform() {
|
checkPlatform() {
|
||||||
|
|
||||||
local xml="$1"
|
local xml="$1"
|
||||||
local tag="ARCH"
|
local platform compat
|
||||||
local platform="x64"
|
|
||||||
local compat="$platform"
|
|
||||||
local arch
|
|
||||||
|
|
||||||
arch=$(sed -n "/$tag/{s/.*<$tag>\(.*\)<\/$tag>.*/\1/;p}" <<< "$xml")
|
platform=$(getPlatform "$xml")
|
||||||
|
|
||||||
case "${arch,,}" in
|
case "${platform,,}" in
|
||||||
"0" ) platform="x86"; compat="x64" ;;
|
"x86" ) compat="x64" ;;
|
||||||
"9" ) platform="x64"; compat="$platform" ;;
|
"x64" ) compat="$platform" ;;
|
||||||
"12" )platform="arm64"; compat="$platform" ;;
|
"arm64" ) compat="$platform" ;;
|
||||||
|
* ) compat="${PLATFORM,,}" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[[ "${compat,,}" == "${PLATFORM,,}" ]] && return 0
|
[[ "${compat,,}" == "${PLATFORM,,}" ]] && return 0
|
||||||
|
|
||||||
error "You cannot boot ${platform^^} images on a $PLATFORM cpu!"
|
error "You cannot boot ${platform^^} images on a $PLATFORM CPU!"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
detectVersion() {
|
detectVersion() {
|
||||||
|
|
||||||
local xml="$1"
|
local xml="$1"
|
||||||
local id
|
local id platform
|
||||||
|
|
||||||
|
platform=$(getPlatform "$xml")
|
||||||
id=$(selectVersion "DISPLAYNAME" "$xml" "$platform")
|
id=$(selectVersion "DISPLAYNAME" "$xml" "$platform")
|
||||||
[ -z "$id" ] && id=$(selectVersion "PRODUCTNAME" "$xml" "$platform")
|
[ -z "$id" ] && id=$(selectVersion "PRODUCTNAME" "$xml" "$platform")
|
||||||
[ -z "$id" ] && id=$(selectVersion "NAME" "$xml" "$platform")
|
[ -z "$id" ] && id=$(selectVersion "NAME" "$xml" "$platform")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue