mod cmd_build;
mod cmd_coverage;
mod cmd_fmt;
mod cmd_new_package;
mod cmd_test;
mod error;
pub use cmd_build::*;
pub use cmd_coverage::*;
pub use cmd_fmt::*;
pub use cmd_new_package::*;
pub use cmd_test::*;
pub use error::*;
use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None, name = "scrypto")]
pub struct ScryptoCli {
#[clap(subcommand)]
command: Command,
}
#[derive(Subcommand, Debug)]
pub enum Command {
Build(Build),
Coverage(Coverage),
Fmt(Fmt),
NewPackage(NewPackage),
Test(Test),
}
pub fn run() -> Result<(), String> {
let cli = ScryptoCli::parse();
match cli.command {
Command::Build(cmd) => cmd.run(),
Command::Coverage(cmd) => cmd.run().map_err(|error| error.to_string()),
Command::Fmt(cmd) => cmd.run(),
Command::NewPackage(cmd) => cmd.run(),
Command::Test(cmd) => cmd.run(),
}
}