diff options
author | Hayleigh Thompson <me@hayleigh.dev> | 2024-03-17 17:10:46 +0000 |
---|---|---|
committer | Hayleigh Thompson <me@hayleigh.dev> | 2024-03-17 17:10:46 +0000 |
commit | c67f11499310e874ac07844cabf4f05719da8aed (patch) | |
tree | 61178c79be2d8e6f4daf1d6b9df685e24c306e52 /src | |
parent | eb73e7622252e130095d41c0e901feba48ecfaf7 (diff) | |
download | lustre-c67f11499310e874ac07844cabf4f05719da8aed.tar.gz lustre-c67f11499310e874ac07844cabf4f05719da8aed.zip |
:recycle: Use external templates for generated files.
Diffstat (limited to 'src')
-rw-r--r-- | src/lustre/cli/dev.gleam | 31 | ||||
-rw-r--r-- | src/lustre/cli/utils.gleam | 10 |
2 files changed, 23 insertions, 18 deletions
diff --git a/src/lustre/cli/dev.gleam b/src/lustre/cli/dev.gleam index 4f49ce1..d1bee68 100644 --- a/src/lustre/cli/dev.gleam +++ b/src/lustre/cli/dev.gleam @@ -11,7 +11,7 @@ import lustre/attribute.{attribute} import lustre/cli/esbuild import lustre/cli/project.{type Module} import lustre/cli/step -import lustre/cli/utils.{guard, keep, map, replace, try} +import lustre/cli/utils.{guard, keep, map, replace, template, try} import lustre/element import lustre/element/html.{html} import simplifile @@ -45,23 +45,18 @@ pub fn run() -> Command(Nil) { let _ = simplifile.create_directory_all(tempdir) let entry = - case is_app { - True -> - " import { start } from '../dev/javascript/lustre/lustre.mjs'; - import { main } from '../dev/javascript/${app_name}/${app_name}.mjs'; - - start(main(), ${container_id}); - " - False -> - " import { main } from '../dev/javascript/${app_name}/${app_name}.mjs'; - - main(); - " - } - |> string.replace("${app_name}", interface.name) - |> string.replace("${container_id}", "app") - - let html = index_html(interface.name, "app", include_styles) + template(case is_app { + True -> "entry-with-start.mjs" + False -> "entry-with-main.mjs" + }) + |> string.replace("{app_name}", interface.name) + + let html = + template(case include_styles { + True -> "index-with-lustre-ui.html" + False -> "index.html" + }) + |> string.replace("{app_name}", interface.name) let assert Ok(_) = simplifile.write(tempdir <> "/entry.mjs", entry) let assert Ok(_) = simplifile.write(tempdir <> "/index.html", html) diff --git a/src/lustre/cli/utils.gleam b/src/lustre/cli/utils.gleam index 6dbc110..a677e70 100644 --- a/src/lustre/cli/utils.gleam +++ b/src/lustre/cli/utils.gleam @@ -1,3 +1,13 @@ +import simplifile +import gleam/erlang + +pub fn template(name: String) -> String { + let assert Ok(priv) = erlang.priv_directory("lustre") + let assert Ok(file) = simplifile.read(priv <> "/templates/" <> name) + + file +} + @external(erlang, "cli_ffi", "exec") pub fn exec( run command: String, |