8 |
8 |
9 |
9 |
10 object Component_Go { |
10 object Component_Go { |
11 /* platform information */ |
11 /* platform information */ |
12 |
12 |
13 sealed case class Download_Platform(platform_name: String, download_name: String) { |
13 sealed case class Download_Platform(platform_name: String, go_platform: String) { |
14 def download(base_url: String, version: String): String = |
14 val platform_family: Platform.Family = |
15 Url.append_path(base_url, "go" + version + "." + download_name) |
15 Platform.Family.from_platform(platform_name) |
|
16 |
|
17 def platform_paths: List[String] = |
|
18 List(platform_name, "pkg/tool/" + go_platform) |
|
19 |
|
20 def download(base_url: String, version: String): String = { |
|
21 val ext = if (platform_family == Platform.Family.windows) ".zip" else ".tar.gz" |
|
22 Url.append_path(base_url, "go" + version + "." + go_platform.replace("_", "-") + ext) |
|
23 } |
16 } |
24 } |
17 |
25 |
18 val platforms: List[Download_Platform] = |
26 val platforms: List[Download_Platform] = |
19 List( |
27 List( |
20 Download_Platform("arm64-darwin", "darwin-arm64.tar.gz"), |
28 Download_Platform("arm64-darwin", "darwin_arm64"), |
21 Download_Platform("arm64-linux", "linux-arm64.tar.gz"), |
29 Download_Platform("arm64-linux", "linux_arm64"), |
22 Download_Platform("x86_64-darwin", "darwin-amd64.tar.gz"), |
30 Download_Platform("x86_64-darwin", "darwin_amd64"), |
23 Download_Platform("x86_64-linux", "linux-amd64.tar.gz"), |
31 Download_Platform("x86_64-linux", "linux_amd64"), |
24 Download_Platform("x86_64-windows", "windows-amd64.zip")) |
32 Download_Platform("x86_64-windows", "windows_amd64")) |
25 |
33 |
26 |
34 |
27 /* build go */ |
35 /* build go */ |
28 |
36 |
29 val default_url = "https://go.dev/dl" |
37 val default_url = "https://go.dev/dl" |
91 |
99 |
92 ISABELLE_TOOLS="$ISABELLE_TOOLS:$ISABELLE_GOROOT/isabelle_tool" |
100 ISABELLE_TOOLS="$ISABELLE_TOOLS:$ISABELLE_GOROOT/isabelle_tool" |
93 """) |
101 """) |
94 |
102 |
95 |
103 |
|
104 /* platform.props */ |
|
105 |
|
106 File.write(component_dir.platform_props, |
|
107 (for ((a, b) <- platforms.groupBy(_.platform_family).iterator) |
|
108 yield a.toString + " = " + b.flatMap(_.platform_paths).mkString(" ") |
|
109 ).mkString("", "\n", "\n")) |
|
110 |
|
111 |
96 /* README */ |
112 /* README */ |
97 |
113 |
98 File.write(component_dir.README, |
114 File.write(component_dir.README, |
99 """This distribution of Go has been assembled from official downloads from |
115 """This distribution of Go has been assembled from official downloads from |
100 """ + base_url + """ |
116 """ + base_url + """ |