From d85a953424eb11a729b9a6cd41b21b1a2025f9f5 Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 7 Apr 2022 12:12:08 +0100 Subject: [PATCH 1/4] Use `clap::ArgEnum` for `BuildArtifacts` --- src/cmd/build.rs | 4 +++- src/main.rs | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/cmd/build.rs b/src/cmd/build.rs index 46be86a2..e33f6935 100644 --- a/src/cmd/build.rs +++ b/src/cmd/build.rs @@ -85,8 +85,8 @@ pub struct BuildCommand { /// `.contract` file is skipped. #[clap( long = "generate", + arg_enum, default_value = "all", - value_name = "all | code-only", verbatim_doc_comment )] build_artifact: BuildArtifacts, @@ -171,6 +171,8 @@ impl BuildCommand { verbosity = Verbosity::Quiet; } + println!("Build artifacts {:?}", self.build_artifact); + let args = ExecuteArgs { manifest_path, verbosity, diff --git a/src/main.rs b/src/main.rs index 0bc94203..96d61b33 100644 --- a/src/main.rs +++ b/src/main.rs @@ -209,15 +209,19 @@ impl TryFrom<&UnstableOptions> for UnstableFlags { } /// Describes which artifacts to generate -#[derive(Copy, Clone, Eq, PartialEq, Debug, Subcommand, serde::Serialize)] +#[derive(Copy, Clone, Eq, PartialEq, Debug, clap::ArgEnum, serde::Serialize)] #[clap(name = "build-artifacts")] pub enum BuildArtifacts { /// Generate the Wasm, the metadata and a bundled `.contract` file #[clap(name = "all")] All, - /// Only the Wasm is created, generation of metadata and a bundled `.contract` file is skipped + /// Only the Wasm is created, generation of metadata and a bundled `.contract` file is + /// skipped #[clap(name = "code-only")] CodeOnly, + /// Run the `cargo check` command for the Wasm target, only checks for compilation errors and + /// does not produce any artifacts. + #[clap(name = "check-only")] CheckOnly, } -- GitLab From 4424cba7e147ce9670b026e3ef6f6d47b5831e92 Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 7 Apr 2022 12:13:10 +0100 Subject: [PATCH 2/4] Remove from-str impl --- src/main.rs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 96d61b33..faca2387 100644 --- a/src/main.rs +++ b/src/main.rs @@ -237,17 +237,6 @@ impl BuildArtifacts { } } -impl std::str::FromStr for BuildArtifacts { - type Err = String; - fn from_str(artifact: &str) -> Result { - match artifact { - "all" => Ok(BuildArtifacts::All), - "code-only" => Ok(BuildArtifacts::CodeOnly), - _ => Err("Could not parse build artifact".to_string()), - } - } -} - impl Default for BuildArtifacts { fn default() -> Self { BuildArtifacts::All -- GitLab From c21e4eb4e56ad48bfc7ca4f7f9b2201a437e1008 Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 7 Apr 2022 12:20:16 +0100 Subject: [PATCH 3/4] Update docs for check-only --- src/cmd/build.rs | 10 ++++------ src/main.rs | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/cmd/build.rs b/src/cmd/build.rs index e33f6935..7e695cf1 100644 --- a/src/cmd/build.rs +++ b/src/cmd/build.rs @@ -83,12 +83,10 @@ pub struct BuildCommand { /// /// - `code-only`: Only the Wasm is created, generation of metadata and a bundled /// `.contract` file is skipped. - #[clap( - long = "generate", - arg_enum, - default_value = "all", - verbatim_doc_comment - )] + /// + /// - `check-only`: No artifacts produced: runs the `cargo check` command for the Wasm target, + /// only checks for compilation errors. + #[clap(long = "generate", arg_enum, default_value = "all")] build_artifact: BuildArtifacts, #[clap(flatten)] verbosity: VerbosityFlags, diff --git a/src/main.rs b/src/main.rs index faca2387..848a75ac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -219,8 +219,8 @@ pub enum BuildArtifacts { /// skipped #[clap(name = "code-only")] CodeOnly, - /// Run the `cargo check` command for the Wasm target, only checks for compilation errors and - /// does not produce any artifacts. + /// No artifacts produced: runs the `cargo check` command for the Wasm target, only checks for + /// compilation errors. #[clap(name = "check-only")] CheckOnly, } -- GitLab From 2bcd5858eca7134856336da1828181db848870cf Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 7 Apr 2022 12:23:44 +0100 Subject: [PATCH 4/4] Remove println! --- src/cmd/build.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/cmd/build.rs b/src/cmd/build.rs index 7e695cf1..7cb0d465 100644 --- a/src/cmd/build.rs +++ b/src/cmd/build.rs @@ -169,8 +169,6 @@ impl BuildCommand { verbosity = Verbosity::Quiet; } - println!("Build artifacts {:?}", self.build_artifact); - let args = ExecuteArgs { manifest_path, verbosity, -- GitLab