src/Pure/Admin/component_go.scala
changeset 79982 013558fd6fed
parent 79976 c7e6a508a65b
child 80008 914c4a81027d
equal deleted inserted replaced
79981:bdea4eccd8d5 79982:013558fd6fed
     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 + """