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