Skip to content

Commit e0217c2

Browse files
committed
feat: Add Windows container images
1 parent 2dd9cc6 commit e0217c2

4 files changed

Lines changed: 1268 additions & 0 deletions

File tree

packages/windows/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM ubuntu:latest
2+
3+
RUN apt-get update; apt-get install -y aria2 cabextract wimtools chntpw genisoimage curl
4+
5+
COPY uupdump_converter/ /build/uupdump_converter/
6+
COPY build_windows_uupdump.sh /build/
7+
8+
ENTRYPOINT ["/build/build_windows_uupdump.sh"]
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
#!/bin/bash
2+
3+
set -e
4+
cd /build/uupdump_converter
5+
6+
case "${ARCH}" in
7+
"x86_64") ARCH="amd64";;
8+
"aarch64") ARCH="arm64";;
9+
*) echo "Unsupported architecture: ${ARCH}"
10+
exit 1
11+
;;
12+
esac
13+
14+
RELEASE="${RELEASE/-build/}"
15+
16+
case "${RELEASE}" in
17+
"retail") RING="retail";;
18+
"release_preview") RING="rp";;
19+
"beta") RING="wis";;
20+
"dev") RING="wif";;
21+
"canary") RING="canary";;
22+
*) echo "Unsupported release: ${RELEASE}"
23+
exit 1
24+
;;
25+
esac
26+
27+
case "${EDITION}" in
28+
"Arabic") LANG="ar-sa";;
29+
"Brazilian Portuguese") LANG="pt-br";;
30+
"Bulgarian") LANG="bg-bg";;
31+
"Chinese (Simplified)") LANG="zh-cn";;
32+
"Chinese (Traditional)") LANG="zh-tw";;
33+
"Croatian") LANG="hr-hr";;
34+
"Czech") LANG="cs-cz";;
35+
"Danish") LANG="da-dk";;
36+
"Dutch") LANG="nl-nl";;
37+
"English International") LANG="en-gb";;
38+
"English (United States)") LANG="en-us";;
39+
"Estonian") LANG="et-ee";;
40+
"Finnish") LANG="fi-fi";;
41+
"French") LANG="fr-fr";;
42+
"French Canadian") LANG="fr-ca";;
43+
"German") LANG="de-de";;
44+
"Greek") LANG="el-gr";;
45+
"Hebrew") LANG="he-il";;
46+
"Hungarian") LANG="hu-hu";;
47+
"Italian") LANG="it-it";;
48+
"Japanese") LANG="ja-jp";;
49+
"Korean") LANG="ko-kr";;
50+
"Latvian") LANG="lv-lv";;
51+
"Lithuanian") LANG="lt-lt";;
52+
"Norwegian") LANG="nb-no";;
53+
"Polish") LANG="pl-pl";;
54+
"Portuguese") LANG="pt-pt";;
55+
"Romanian") LANG="ro-ro";;
56+
"Russian") LANG="ru-ru";;
57+
"Serbian Latin") LANG="sr-latn-rs";;
58+
"Slovak") LANG="sk-sk";;
59+
"Slovenian") LANG="sl-si";;
60+
"Spanish") LANG="es-es";;
61+
"Spanish (Mexico)") LANG="es-mx";;
62+
"Swedish") LANG="sv-se";;
63+
"Thai") LANG="th-th";;
64+
"Turkish") LANG="tr-tr";;
65+
"Ukrainian") LANG="uk-ua";;
66+
*) echo "Unsupported language: ${EDITION}"
67+
exit 1
68+
;;
69+
esac
70+
71+
# Fetchupd in UUPDump's JSON API doesn't appear to work correctly. Therefore, parse from website HTML instead.
72+
UPD_ID="$(curl -s "https://uupdump.net/fetchupd.php?arch=${ARCH}&ring=${RING}" | grep -i -v "update" | grep -A 7 -e ", version" -e "Insider Preview" | grep -P -o '(?<=<code>)[0-9a-f-]{36}(?=</code)')"
73+
74+
if [ -z "${UPD_ID}" ]; then
75+
echo "Failed to fetch update ID."
76+
exit 1
77+
fi
78+
79+
echo "Found update ID: ${UPD_ID}"
80+
# Wait for ratelimiting
81+
sleep 5
82+
83+
curl -s "https://uupdump.net/get.php?id=${UPD_ID}&pack=${LANG}&edition=core;professional&aria2=2" -o "aria2_script.txt"
84+
85+
echo "Downloading UUP files..."
86+
aria2c --no-conf --console-log-level=warn --log-level=info -x16 -s16 -j5 -c -R -d"UUPs" -i"aria2_script.txt"
87+
88+
echo "Building image from UUP files..."
89+
./convert.sh
90+
91+
EDITION="$(echo "${EDITION}" | sed 's/ /_/g' | sed 's/[()]//g')"
92+
93+
for ISO in *.ISO; do
94+
chmod a+rw "${ISO}"
95+
mv "${ISO}" "/output/windows-${RELEASE}-${EDITION}.iso"
96+
break;
97+
done

0 commit comments

Comments
 (0)