From 864b6da9c33c62263e46b63840dd82164a80fbb6 Mon Sep 17 00:00:00 2001 From: nezuo Date: Mon, 28 Aug 2023 03:07:14 -0700 Subject: [PATCH] Use clap conflicts_with for build flags --- src/cli/build.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/cli/build.rs b/src/cli/build.rs index 8f705d376..0593cc05b 100644 --- a/src/cli/build.rs +++ b/src/cli/build.rs @@ -30,13 +30,13 @@ pub struct BuildCommand { /// Where to output the result. /// /// Should end in .rbxm, .rbxl, .rbxmx, or .rbxlx. - #[clap(long, short)] + #[clap(long, short, conflicts_with = "plugin")] pub output: Option, /// Alternative to the output flag that outputs the result in the local plugins folder. /// /// Should end in .rbxm or .rbxl. - #[clap(long, short)] + #[clap(long, short, conflicts_with = "output")] pub plugin: Option, /// Whether to automatically rebuild when any input files change. @@ -47,14 +47,6 @@ pub struct BuildCommand { impl BuildCommand { pub fn run(self) -> anyhow::Result<()> { let (output_path, output_kind) = match (self.output, self.plugin) { - (Some(_), Some(_)) => { - BuildCommand::command() - .error( - clap::ErrorKind::ArgumentConflict, - "the argument '--output ' cannot be used with '--plugin '", - ) - .exit(); - } (None, None) => { BuildCommand::command() .error( @@ -80,6 +72,7 @@ impl BuildCommand { (studio.plugins_path().join(&plugin), output_kind) } + _ => unreachable!(), }; let project_path = resolve_path(&self.project);