aboutsummaryrefslogtreecommitdiff
path: root/vendor/clap/examples/tutorial_builder/04_04_custom.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/clap/examples/tutorial_builder/04_04_custom.rs
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz
fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip
Deleted vendor folder
Diffstat (limited to 'vendor/clap/examples/tutorial_builder/04_04_custom.rs')
-rw-r--r--vendor/clap/examples/tutorial_builder/04_04_custom.rs84
1 files changed, 0 insertions, 84 deletions
diff --git a/vendor/clap/examples/tutorial_builder/04_04_custom.rs b/vendor/clap/examples/tutorial_builder/04_04_custom.rs
deleted file mode 100644
index 840b3aa..0000000
--- a/vendor/clap/examples/tutorial_builder/04_04_custom.rs
+++ /dev/null
@@ -1,84 +0,0 @@
-use std::path::PathBuf;
-
-use clap::error::ErrorKind;
-use clap::{arg, command, value_parser, ArgAction};
-
-fn main() {
- // Create application like normal
- let mut cmd = command!() // requires `cargo` feature
- // Add the version arguments
- .arg(arg!(--"set-ver" <VER> "set version manually"))
- .arg(arg!(--major "auto inc major").action(ArgAction::SetTrue))
- .arg(arg!(--minor "auto inc minor").action(ArgAction::SetTrue))
- .arg(arg!(--patch "auto inc patch").action(ArgAction::SetTrue))
- // Arguments can also be added to a group individually, these two arguments
- // are part of the "input" group which is not required
- .arg(arg!([INPUT_FILE] "some regular input").value_parser(value_parser!(PathBuf)))
- .arg(
- arg!(--"spec-in" <SPEC_IN> "some special input argument")
- .value_parser(value_parser!(PathBuf)),
- )
- // Now let's assume we have a -c [config] argument which requires one of
- // (but **not** both) the "input" arguments
- .arg(arg!(config: -c <CONFIG>).value_parser(value_parser!(PathBuf)));
- let matches = cmd.get_matches_mut();
-
- // Let's assume the old version 1.2.3
- let mut major = 1;
- let mut minor = 2;
- let mut patch = 3;
-
- // See if --set-ver was used to set the version manually
- let version = if let Some(ver) = matches.get_one::<String>("set-ver") {
- if matches.get_flag("major") || matches.get_flag("minor") || matches.get_flag("patch") {
- cmd.error(
- ErrorKind::ArgumentConflict,
- "Can't do relative and absolute version change",
- )
- .exit();
- }
- ver.to_string()
- } else {
- // Increment the one requested (in a real program, we'd reset the lower numbers)
- let (maj, min, pat) = (
- matches.get_flag("major"),
- matches.get_flag("minor"),
- matches.get_flag("patch"),
- );
- match (maj, min, pat) {
- (true, false, false) => major += 1,
- (false, true, false) => minor += 1,
- (false, false, true) => patch += 1,
- _ => {
- cmd.error(
- ErrorKind::ArgumentConflict,
- "Can only modify one version field",
- )
- .exit();
- }
- };
- format!("{major}.{minor}.{patch}")
- };
-
- println!("Version: {version}");
-
- // Check for usage of -c
- if matches.contains_id("config") {
- let input = matches
- .get_one::<PathBuf>("INPUT_FILE")
- .or_else(|| matches.get_one::<PathBuf>("spec-in"))
- .unwrap_or_else(|| {
- cmd.error(
- ErrorKind::MissingRequiredArgument,
- "INPUT_FILE or --spec-in is required when using --config",
- )
- .exit()
- })
- .display();
- println!(
- "Doing work using input {} and config {}",
- input,
- matches.get_one::<PathBuf>("config").unwrap().display()
- );
- }
-}