summaryrefslogtreecommitdiffstats
path: root/libimagtag
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-03-19 17:48:03 +0100
committerMatthias Beyer <mail@beyermatthias.de>2016-03-19 17:52:21 +0100
commit36ecafad4d13391c92263b54dd95e618a3a11990 (patch)
treed6c46eda1d95812f819aa3b521f88a9be30732ab /libimagtag
parent1aae2dccf9bb8178e9f64893ef746d873c088edb (diff)
Add helper functions to get names of arguments/subcommands
Diffstat (limited to 'libimagtag')
-rw-r--r--libimagtag/src/ui.rs28
1 files changed, 24 insertions, 4 deletions
diff --git a/libimagtag/src/ui.rs b/libimagtag/src/ui.rs
index e889e224..9f9cf2c8 100644
--- a/libimagtag/src/ui.rs
+++ b/libimagtag/src/ui.rs
@@ -5,19 +5,19 @@ use tag::Tag;
/// Generates a clap::SubCommand to be integrated in the commandline-ui builder for building a
/// "tags --add foo --remove bar" subcommand to do tagging action.
pub fn tag_subcommand<'a, 'b>() -> App<'a, 'b> {
- SubCommand::with_name("tags")
+ SubCommand::with_name(tag_subcommand_name())
.author("Matthias Beyer <mail@beyermatthias.de>")
.version("0.1")
.about("Add or remove tags")
- .arg(Arg::with_name("add-tags")
+ .arg(Arg::with_name(tag_subcommand_add_arg_name())
.short("a")
.long("add")
.takes_value(true)
.multiple(true)
.help("Add tags, seperated by comma or by specifying multiple times"))
- .arg(Arg::with_name("remove-tags")
+ .arg(Arg::with_name(tag_subcommand_remove_arg_name())
.short("r")
.long("remove")
.takes_value(true)
@@ -25,10 +25,26 @@ pub fn tag_subcommand<'a, 'b>() -> App<'a, 'b> {
.help("Remove tags, seperated by comma or by specifying multiple times"))
}
+pub fn tag_subcommand_name() -> &'static str {
+ "tags"
+}
+
+pub fn tag_subcommand_add_arg_name() -> &'static str {
+ "add-tags"
+}
+
+pub fn tag_subcommand_remove_arg_name() -> &'static str {
+ "remove-tags"
+}
+
+pub fn tag_subcommand_names() -> Vec<&'static str> {
+ vec![tag_subcommand_add_arg_name(), tag_subcommand_remove_arg_name()]
+}
+
/// Generates a clap::Arg which can be integrated into the commandline-ui builder for building a
/// "-t" or "--tags" argument which takes values for tagging actions (add, remove)
pub fn tag_argument<'a, 'b>() -> Arg<'a, 'b> {
- Arg::with_name("specify-tags")
+ Arg::with_name(tag_argument_name())
.short("t")
.long("tags")
.takes_value(true)
@@ -36,6 +52,10 @@ pub fn tag_argument<'a, 'b>() -> Arg<'a, 'b> {
.help("Add or remove tags, prefixed by '+' (for adding) or '-' (for removing)")
}
+pub fn tag_argument_name() -> &'static str {
+ "specify-tags"
+}
+
/// Get the tags which should be added from the commandline
///
/// Returns none if the argument was not specified