tools for building gleam projects with nix

gleam2nix/entrypoint: read module name from gleam.toml

foxgirl.engineering d412c00b f3ae5f92

verified
+6 -7
+5 -2
src/entrypoint.rs
··· 6 7 use miette::{Context, IntoDiagnostic, Result, miette}; 8 9 const SOURCE_FILENAME: &str = "gleam_entrypoint.erl"; 10 11 fn generate_module_source(module_name: &str) -> String { ··· 20 ) 21 } 22 23 - pub fn generate_module(module_name: &str) -> Result<()> { 24 - let source = generate_module_source(module_name); 25 26 fs::write(SOURCE_FILENAME, source) 27 .into_diagnostic()
··· 6 7 use miette::{Context, IntoDiagnostic, Result, miette}; 8 9 + use crate::gleam_toml; 10 + 11 const SOURCE_FILENAME: &str = "gleam_entrypoint.erl"; 12 13 fn generate_module_source(module_name: &str) -> String { ··· 22 ) 23 } 24 25 + pub fn generate_module() -> Result<()> { 26 + let gleam_toml = gleam_toml::parse("gleam.toml")?; 27 + let source = generate_module_source(&gleam_toml.name); 28 29 fs::write(SOURCE_FILENAME, source) 30 .into_diagnostic()
+1 -5
src/main.rs
··· 44 45 match (&(*args.command)).into() { 46 Command::Appspec => app::generate_app_file(args), 47 - Command::Entrypoint => entrypoint::generate_module( 48 - args.rest 49 - .first() 50 - .ok_or(miette!("No module name specified"))?, 51 - ), 52 Command::GenerateNix => nix::write_gleam_nix(args), 53 Command::NotFound => Err(miette!("Command not found")), 54 }
··· 44 45 match (&(*args.command)).into() { 46 Command::Appspec => app::generate_app_file(args), 47 + Command::Entrypoint => entrypoint::generate_module(), 48 Command::GenerateNix => nix::write_gleam_nix(args), 49 Command::NotFound => Err(miette!("Command not found")), 50 }