diff --git a/bin/config.ml b/bin/config.ml index 9e2c228..bdbdac6 100644 --- a/bin/config.ml +++ b/bin/config.ml @@ -1,12 +1,15 @@ module Server = struct let bucket_dir = "/dune/" let rclone_bucket_ref = Format.sprintf "dune-binary-distribution:%s" bucket_dir - let url = "https://get.dune.build" + let artifact_base_url = "https://get.dune.build" +end + +module Site = struct + let install_script_url = "https://nightly.dune.build/install" end module Path = struct let artifacts_dir = "./artifacts" let metadata = "./metadata.json" let rclone = "./rclone.conf" - let install = "./static/install" end diff --git a/bin/config.mli b/bin/config.mli index f86b0ec..1d63dac 100644 --- a/bin/config.mli +++ b/bin/config.mli @@ -1,11 +1,14 @@ module Server : sig val rclone_bucket_ref : string - val url : string + val artifact_base_url : string +end + +module Site : sig + val install_script_url : string end module Path : sig val artifacts_dir : string val metadata : string val rclone : string - val install : string end diff --git a/bin/main.ml b/bin/main.ml index fd94808..98c44f4 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -51,25 +51,6 @@ module Sync = struct Config.Path.artifacts_dir s3_daily_bundle in - let () = - let install_bucket_path = - Filename.concat - Config.Server.rclone_bucket_ref - (Filename.basename Config.Path.install) - in - if dry_run - then - Format.printf - "- Copy file (%s) to %s, using RClone (%s)\n" - Config.Path.install - install_bucket_path - Config.Path.rclone - else - Rclone.copy - ~config_path:Config.Path.rclone - Config.Path.install - install_bucket_path - in let bundles = Metadata.insert_unique daily_bundle bundle in let () = if dry_run @@ -98,16 +79,19 @@ end module Http = struct let serve dev metadata_file port = let title = "Dune Nightly" in - let base_url = Config.Server.url in + let artifact_base_url = Config.Server.artifact_base_url in + let install_script_url = Config.Site.install_script_url in let bundles = Metadata.import_from_json metadata_file in let routes = - let main_page = Web.generate_main_page ~title ~base_url bundles in + let main_page = + Web.generate_main_page ~title ~artifact_base_url ~install_script_url bundles + in Web.Route.empty |> Web.Route.add ~path:"/" main_page |> Web.Route.add ~path:"/index.html" main_page in let latest = List.hd bundles in - Server.serve ~dev ~base_url routes port latest + Server.serve ~dev ~artifact_base_url routes port latest ;; let term = diff --git a/bin/server.ml b/bin/server.ml index ad6192a..bd2f580 100644 --- a/bin/server.ml +++ b/bin/server.ml @@ -13,13 +13,13 @@ let reload_script_middleware ~dev inner_handler request = if dev then Dream.livereload inner_handler request else inner_handler request ;; -let latest_route_from_targets ~base_url bundle = +let latest_route_from_targets ~artifact_base_url bundle = let open Sandworm.Metadata in List.map (fun target -> - let path = Format.sprintf "/%s" (Target.to_string target) in - Dream.get path (fun request -> - Dream.redirect request (Bundle.to_download_url ~base_url ~target bundle))) + let path = Format.sprintf "/%s" (Target.to_string target) in + Dream.get path (fun request -> + Dream.redirect request (Bundle.to_download_url ~artifact_base_url ~target bundle))) bundle.targets ;; @@ -39,7 +39,7 @@ let from_tuple_to_dream page = List.map (fun (path, content) -> Dream.get path (fun _ -> Dream.html content)) page ;; -let serve ~dev ~base_url routes port bundle = +let serve ~dev ~artifact_base_url routes port bundle = let interface = if dev then "127.0.0.1" else "0.0.0.0" in let error_handler = Dream.error_template error_template in Dream.log @@ -56,6 +56,6 @@ let serve ~dev ~base_url routes port bundle = @ [ Dream.get "/health" (fun _ -> Dream.html "OK") ; Dream.get "/install" (fun request -> Dream.redirect request "/static/install") ; Dream.get "/static/**" @@ Dream.static "static" - ; Dream.scope "/latest" [] (latest_route_from_targets ~base_url bundle) + ; Dream.scope "/latest" [] (latest_route_from_targets ~artifact_base_url bundle) ]) ;; diff --git a/lib/main.mlx b/lib/main.mlx index 6209cc4..85b163d 100644 --- a/lib/main.mlx +++ b/lib/main.mlx @@ -38,7 +38,7 @@ let warning () = -let getting_started ~install_url () = +let getting_started ~install_script_url () =

"Install Dune"

@@ -46,7 +46,7 @@ let getting_started ~install_url () = "Copy & Install" - +

"Getting Started"

"You can create and run your first hello-world program using Dune like this"

@@ -216,13 +216,13 @@ let faq () =

-let installation_target ~base_url ~bundle target = +let installation_target ~artifact_base_url ~bundle target = let open Metadata in let title = Target.to_human_readable_string target in let desc = Target.to_description target in let targz = Bundle.to_download_file target in - let cert_href = Bundle.to_certificate_url bundle ~base_url ~target in - let tar_href = Bundle.to_download_url bundle ~base_url ~target in + let cert_href = Bundle.to_certificate_url bundle ~artifact_base_url ~target in + let tar_href = Bundle.to_download_url bundle ~artifact_base_url ~target in
  • (JSX.string title)

    @@ -237,7 +237,7 @@ let installation_target ~base_url ~bundle target = "Certificate"
  • -let manual_installation ~base_url ~releases () = +let manual_installation ~artifact_base_url ~releases () =

    "Manual Installation"

    @@ -253,7 +253,7 @@ let manual_installation ~base_url ~releases () = @@ -286,11 +286,11 @@ let manual_installation ~base_url ~releases () =
    -let release_information ~base_url ~bundle ~target () = +let release_information ~artifact_base_url ~bundle ~target () = let open Metadata in let targz = Bundle.to_download_file target in - let cert_href = Bundle.to_certificate_url bundle ~base_url ~target in - let tar_href = Bundle.to_download_url bundle ~base_url ~target in + let cert_href = Bundle.to_certificate_url bundle ~artifact_base_url ~target in + let tar_href = Bundle.to_download_url bundle ~artifact_base_url ~target in let (arch, _, os) = Target.to_triple target in (JSX.string targz) @@ -307,7 +307,7 @@ let release_information ~base_url ~bundle ~target () = -let release_history ~base_url ~releases () = +let release_history ~artifact_base_url ~releases () = let open Metadata in
    @@ -323,7 +323,7 @@ let release_history ~base_url ~releases () = |> List.map (fun (bundle: Bundle.t) -> let date = Bundle.get_date_string_from ~prefix:"nightly-" bundle in let summary = Format.sprintf "dune %s" date in - let files = bundle.targets |> List.map (fun (target: Target.t) -> ()) in + let files = bundle.targets |> List.map (fun (target: Target.t) -> ()) in (
    @@ -347,15 +347,14 @@ let release_history ~base_url ~releases () = -let page ~base_url ~releases () = +let page ~artifact_base_url ~install_script_url ~releases () = let releases = Core.List.take 30 releases in - let install_url = Filename.concat base_url "install" in
    - + - - + +
    diff --git a/lib/metadata.ml b/lib/metadata.ml index fa9d464..9bdc52d 100644 --- a/lib/metadata.ml +++ b/lib/metadata.ml @@ -76,12 +76,12 @@ module Bundle = struct let ( / ) = Filename.concat - let to_url ~base_url ~target t = - base_url / get_date_string_from t / Target.to_string target + let to_url ~artifact_base_url ~target t = + artifact_base_url / get_date_string_from t / Target.to_string target ;; - let to_certificate_url ~base_url ~target t = - to_url ~base_url ~target t / "attestation.jsonl" + let to_certificate_url ~artifact_base_url ~target t = + to_url ~artifact_base_url ~target t / "attestation.jsonl" ;; let download_file_name ~date arch = @@ -90,10 +90,10 @@ module Bundle = struct | Some date -> Format.sprintf "dune-%s-%s.tar.gz" date arch ;; - let to_download_url ~base_url ~target t = + let to_download_url ~artifact_base_url ~target t = let date = get_date_string_from t |> Option.some in let arch = Target.to_string target in - to_url ~base_url ~target t / download_file_name ~date arch + to_url ~artifact_base_url ~target t / download_file_name ~date arch ;; let to_download_file target = diff --git a/lib/web.ml b/lib/web.ml index f35463f..3f26ce2 100644 --- a/lib/web.ml +++ b/lib/web.ml @@ -1,7 +1,8 @@ let export_website_to_string ~title content = Container.page ~title content |> JSX.render -let generate_main_page ~title ~base_url releases = - Main.page ~base_url ~releases () |> export_website_to_string ~title +let generate_main_page ~title ~artifact_base_url ~install_script_url releases = + Main.page ~artifact_base_url ~install_script_url ~releases () + |> export_website_to_string ~title ;; let generate_error_page ~title ~code reason =