mirror of
				https://github.com/oSoWoSo/DistroHopper.git
				synced 2024-08-14 22:46:53 +00:00 
			
		
		
		
	Add Windows 10 support to quickget
This commit is contained in:
		
							parent
							
								
									a4cfed64e1
								
							
						
					
					
						commit
						f908e3be96
					
				
					 1 changed files with 123 additions and 3 deletions
				
			
		
							
								
								
									
										124
									
								
								quickget
									
										
									
									
									
								
							
							
						
						
									
										124
									
								
								quickget
									
										
									
									
									
								
							|  | @ -9,6 +9,7 @@ function os_support() { | |||
|     ubuntu-kylin \ | ||||
|     ubuntu-mate \ | ||||
|     ubuntu-studio \ | ||||
|     windows \ | ||||
|     xubuntu | ||||
| } | ||||
| 
 | ||||
|  | @ -25,14 +26,65 @@ function releases_ubuntu() { | |||
|     devel | ||||
| } | ||||
| 
 | ||||
| function languages_windows() { | ||||
|     echo Arabic \ | ||||
|     Brazilian Portuguese \ | ||||
|     Bulgarian \ | ||||
|     Chinese \(Simplified\) \ | ||||
|     Chinese \(Traditional\) \ | ||||
|     Croatian \ | ||||
|     Czech \ | ||||
|     Danish \ | ||||
|     Dutch \ | ||||
|     English \ | ||||
|     English International \ | ||||
|     Estonian \ | ||||
|     Finnish \ | ||||
|     French \ | ||||
|     French Canadian \ | ||||
|     German \ | ||||
|     Greek \ | ||||
|     Hebrew \ | ||||
|     Hungarian \ | ||||
|     Italian \ | ||||
|     Japanese \ | ||||
|     Korean \ | ||||
|     Latvian \ | ||||
|     Lithuanian \ | ||||
|     Norwegian \ | ||||
|     Polish \ | ||||
|     Portuguese \ | ||||
|     Romanian \ | ||||
|     Russian \ | ||||
|     Serbian Latin \ | ||||
|     Slovak \ | ||||
|     Slovenian \ | ||||
|     Spanish \ | ||||
|     Spanish \(Mexico\) \ | ||||
|     Swedish \ | ||||
|     Thai \ | ||||
|     Turkish \ | ||||
|     Ukrainian | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function releases_windows() { | ||||
|     echo 10 | ||||
| } | ||||
| 
 | ||||
| function web_get() { | ||||
|     local DIR="${2}" | ||||
|     local FILE="" | ||||
|     local URL="${1}" | ||||
|     if [ -n "${3}" ]; then | ||||
|         FILE="${3}" | ||||
|     else | ||||
|         FILE="${URL##*/}" | ||||
|     fi | ||||
| 
 | ||||
|     mkdir -p "${DIR}" 2>/dev/null | ||||
|     if ! wget --quiet --continue --show-progress --progress=bar:force:noscroll "${URL}" -O "${DIR}/${FILE}"; then | ||||
|         echo "ERROR! Failed to download ${URL}" | ||||
|         echo "ERROR! Failed to download ${URL}. Try running 'quickget' again." | ||||
|         exit 1 | ||||
|     fi | ||||
| } | ||||
|  | @ -77,15 +129,21 @@ function make_vm_config() { | |||
|     elif [ "${OS}" == "macos" ]; then | ||||
|         GUEST="macos" | ||||
|         IMAGE_TYPE="img" | ||||
|     elif [ "${OS}" == "windows" ]; then | ||||
|         GUEST="windows" | ||||
|         IMAGE_TYPE="iso" | ||||
|     fi | ||||
| 
 | ||||
|     if [ ! -e "${OS}-${RELEASE}.conf" ]; then | ||||
|         echo "Making VM configuration for ${OS}-${RELEASE}..." | ||||
|         cat << EOF > "${OS}-${RELEASE}.conf" | ||||
| guest_os="${GUEST}" | ||||
| ${IMAGE_TYPE}="${VM_PATH}/${IMAGE_FILE}" | ||||
| disk_img="${VM_PATH}/disk.qcow2" | ||||
| ${IMAGE_TYPE}="${VM_PATH}/${IMAGE_FILE}" | ||||
| EOF | ||||
|         if [ -n "${2}" ]; then | ||||
|             echo "driver_iso=${VM_PATH}/${2}" >> "${OS}-${RELEASE}.conf" | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
|  | @ -219,6 +277,53 @@ function get_ubuntu() { | |||
|     start_vm_info | ||||
| } | ||||
| 
 | ||||
| # Adapted from https://gist.github.com/hongkongkiwi/15a5bf16437315df256c118c163607cb | ||||
| function get_windows() { | ||||
|     if [ "${RELEASE}" != "10" ]; then | ||||
|         echo "ERROR! Unknown release: ${RELEASE}" | ||||
|         releases_windows | ||||
|         exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     local ARCH="x64" | ||||
|     local LANG_CODE="en" | ||||
|     local LATEST_WINDOWS_VERSION="" | ||||
|     local WINDOWS_NAME="" | ||||
|     local VERSION_ID="" | ||||
|     local EDITION_ID="" | ||||
|     local LANGUAGE_ID="" | ||||
|     local FILE_NAME="" | ||||
|     local ARCH_ID="" | ||||
|     local DOWNLOAD_INFO="" | ||||
|     local DOWNLOAD_ID="" | ||||
|     local DOWNLOAD_URL="" | ||||
| 
 | ||||
|     echo "Getting Windows ${RELEASE} URL..." | ||||
|     LATEST_WINDOWS_VERSION=$(wget -q -O- "https://tb.rg-adguard.net/php/get_version.php?type_id=1" | jq '.versions | sort_by(-(.version_id | tonumber))[0]') | ||||
|     WINDOWS_NAME=$(echo "${LATEST_WINDOWS_VERSION}" | jq -r .name) | ||||
|     VERSION_ID=$(echo "${LATEST_WINDOWS_VERSION}" | jq -r .version_id) | ||||
|     EDITION_ID=$(wget -q -O- "https://tb.rg-adguard.net/php/get_edition.php?version_id=${VERSION_ID}&lang=name_${LANG_CODE}" | jq -r '.editions[] | select(.name_'${LANG_CODE}'=="Windows 10").edition_id') | ||||
|     LANGUAGE_ID=$(wget -q -O- "https://tb.rg-adguard.net/php/get_language.php?edition_id=${EDITION_ID}&lang=name_${LANG_CODE}" | jq -r '.languages[] | select(.name_'${LANG_CODE}'=="'"${LANG_NAME}"'").language_id') | ||||
|     ARCH_INFO=$(wget -q -O- "https://tb.rg-adguard.net/php/get_arch.php?language_id=${LANGUAGE_ID}") | ||||
|     FILE_NAME=$(echo "${ARCH_INFO}" | jq -r '.archs[] | select(.name | contains("'${ARCH}'")).name') | ||||
|     ARCH_ID=$(echo "${ARCH_INFO}" | jq -r '.archs[] | select(.name | contains("'${ARCH}'")).arch_id') | ||||
|     DOWNLOAD_INFO=$(wget -q -O- "https://tb.rg-adguard.net/dl.php?fileName=${ARCH_ID}&lang=en") | ||||
|     DOWNLOAD_ID=$(echo "${DOWNLOAD_INFO}" | grep -oP '(?<=https:\/\/tb\.rg-adguard\.net/dl\.php\?go=)[0-9a-z]+') | ||||
|     DOWNLOAD_URL="https://tb.rg-adguard.net/dl.php?go=${DOWNLOAD_ID}" | ||||
| 
 | ||||
|     make_vm_dir | ||||
| 
 | ||||
|     echo "Downloading ${WINDOWS_NAME}..." | ||||
|     web_get "${DOWNLOAD_URL}" "${VM_PATH}" "${FILE_NAME}" | ||||
| 
 | ||||
|     echo "Downloading virtio-win.iso..." | ||||
|     web_get "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" "${VM_PATH}" | ||||
| 
 | ||||
|     make_vm_config "${FILE_NAME}" "virtio-win.iso" | ||||
| 
 | ||||
|     start_vm_info | ||||
| } | ||||
| 
 | ||||
| if [ -n "${1}" ]; then | ||||
|     OS="${1,,}" | ||||
| else | ||||
|  | @ -235,6 +340,8 @@ else | |||
|         releases_macos | ||||
|     elif [[ "${OS}" == *"ubuntu"* ]]; then | ||||
|         releases_ubuntu | ||||
|     elif [ "${OS}" == "windows" ]]; then | ||||
|         releases_windows | ||||
|     fi | ||||
|     exit 1 | ||||
| fi | ||||
|  | @ -245,6 +352,19 @@ if [ "${OS}" == "macos" ]; then | |||
|     get_macos | ||||
| elif [[ "${OS}" == *"ubuntu"* ]]; then | ||||
|     get_ubuntu | ||||
| elif [ "${OS}" == "windows" ]; then | ||||
|     if [ -n "${3}" ]; then | ||||
|         LANG_NAME="${3}" | ||||
|         LANG_NAMES=$(languages_windows) | ||||
|         if [[ "${LANG_NAMES}" != *"${LANG_NAME}"* ]]; then | ||||
|             echo "ERROR! ${LANG_NAME} is not a supported language:" | ||||
|             languages_windows | ||||
|             exit 1 | ||||
|         fi | ||||
|     else | ||||
|         LANG_NAME="English International" | ||||
|     fi | ||||
|     get_windows "${LANG_NAME}" | ||||
| else | ||||
|     echo "ERROR! You must specify an OS:" | ||||
|     os_support | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue