diff --git a/Cargo.lock b/Cargo.lock index 6127e70d..8ac796f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,6 +57,7 @@ dependencies = [ "clap", "hex", "ignore", + "indoc", "miette", "pallas-addresses", "pallas-codec", @@ -487,6 +488,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "indoc" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" + [[package]] name = "instant" version = "0.1.12" diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index bd6335f7..1c6a77f4 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -13,6 +13,7 @@ anyhow = "1.0.57" clap = { version = "3.1.14", features = ["derive"] } hex = "0.4.3" ignore = "0.4.18" +indoc = "1.0" miette = { version = "5.3.0", features = ["fancy"] } pallas-addresses = "0.14.0" pallas-codec = "0.14.0" diff --git a/crates/cli/src/cmd/new.rs b/crates/cli/src/cmd/new.rs index 41f5ee52..938e5fad 100644 --- a/crates/cli/src/cmd/new.rs +++ b/crates/cli/src/cmd/new.rs @@ -1,3 +1,4 @@ +use indoc::{formatdoc, indoc}; use miette::IntoDiagnostic; use std::fs; use std::io::Write; @@ -21,10 +22,10 @@ impl Creator { let root = args.name; let src = root.join("src"); let project_name = root.clone().into_os_string().into_string().unwrap(); - Self{ + Self { root, src, - project_name + project_name, } } @@ -39,31 +40,29 @@ impl Creator { fn always_true_script(&self) -> miette::Result<()> { write( - self.src.join("always_true.ak"), - " -pub fn spend() -> Bool { - true -} -" + self.src.join("always_true.ak"), + indoc! {" + pub fn spend() -> Bool { + true + } + "}, ) } fn aiken_toml(&self) -> miette::Result<()> { write( self.root.join("aiken.toml"), - &format!( + &formatdoc! { r#"name = "{name}" -version = "0.1.0" -licences = ["Apache-2.0"] -description = "Aiken contracts" + version = "0.1.0" + licences = ["Apache-2.0"] + description = "Aiken contracts" -[dependencies] -aiken = "~> {aiken}" + [dependencies] -"#, + "#, name = self.project_name, - aiken = "0.0.24", - ), + }, ) } } @@ -72,7 +71,6 @@ fn write(path: PathBuf, contents: &str) -> miette::Result<()> { let mut f = fs::File::create(&path).into_diagnostic()?; f.write_all(contents.as_bytes()).into_diagnostic()?; - Ok(()) } @@ -80,7 +78,7 @@ pub fn exec(args: Args) -> miette::Result<()> { if !args.name.exists() { let creator = Creator::new(args); creator.run()?; - } + } Ok(()) }