forge/cmd/
soldeer.rs
1use clap::Parser;
2use eyre::Result;
3use foundry_common::shell;
4use soldeer_commands::{Command, Verbosity};
5
6#[derive(Clone, Debug, Parser)]
9#[command(
10 override_usage = "Native Solidity Package Manager, run `forge soldeer [COMMAND] --help` for more details"
11)]
12pub struct SoldeerArgs {
13 #[command(subcommand)]
15 command: Command,
16}
17
18impl SoldeerArgs {
19 pub async fn run(self) -> Result<()> {
20 let verbosity = Verbosity::new(shell::verbosity(), if shell::is_quiet() { 1 } else { 0 });
21 match soldeer_commands::run(self.command, verbosity).await {
22 Ok(_) => Ok(()),
23 Err(err) => Err(eyre::eyre!("Failed to run soldeer: {err}")),
24 }
25 }
26}
27
28#[cfg(test)]
29mod tests {
30 use soldeer_commands::{commands::Version, Command, Verbosity};
31
32 #[tokio::test]
33 async fn test_soldeer_version() {
34 let command = Command::Version(Version::default());
35 assert!(soldeer_commands::run(command, Verbosity::new(0, 1)).await.is_ok());
36 }
37}