radix_clis/scrypto/
mod.rs

1mod cmd_build;
2mod cmd_coverage;
3mod cmd_fmt;
4mod cmd_new_package;
5mod cmd_test;
6mod error;
7
8pub use cmd_build::*;
9pub use cmd_coverage::*;
10pub use cmd_fmt::*;
11pub use cmd_new_package::*;
12pub use cmd_test::*;
13pub use error::*;
14
15use clap::{Parser, Subcommand};
16
17/// Create, build and test Scrypto code
18#[derive(Parser, Debug)]
19#[clap(author, version, about, long_about = None, name = "scrypto")]
20pub struct ScryptoCli {
21    #[clap(subcommand)]
22    command: Command,
23}
24
25#[derive(Subcommand, Debug)]
26pub enum Command {
27    Build(Build),
28    Coverage(Coverage),
29    Fmt(Fmt),
30    NewPackage(NewPackage),
31    Test(Test),
32}
33
34pub fn run() -> Result<(), String> {
35    let cli = ScryptoCli::parse();
36
37    match cli.command {
38        Command::Build(cmd) => cmd.run(),
39        Command::Coverage(cmd) => cmd.run().map_err(|error| error.to_string()),
40        Command::Fmt(cmd) => cmd.run(),
41        Command::NewPackage(cmd) => cmd.run(),
42        Command::Test(cmd) => cmd.run(),
43    }
44}