Add interface specification

This commit is contained in:
Matthias Beyer 2016-02-15 14:42:20 +01:00
parent 5898b64e80
commit d0a12c2fb0
2 changed files with 68 additions and 0 deletions

View file

@ -9,6 +9,8 @@ extern crate libimagrt;
extern crate libimagtag;
extern crate libimagutil;
mod ui;
fn main() {
println!("Hello, world!");
}

66
imag-tag/src/ui.rs Normal file
View file

@ -0,0 +1,66 @@
use clap::{Arg, App, SubCommand};
pub fn build_ui<'a>(app: App<'a, 'a, 'a, 'a, 'a, 'a>) -> App<'a, 'a, 'a, 'a, 'a, 'a> {
app.arg(Arg::with_name("id")
.long("id")
.short("i")
.takes_value(true)
.required(true)
.help("Use this entry"))
.arg(Arg::with_name("add")
.long("add")
.short("a")
.takes_value(true)
.required(false)
.multiple(true)
.help("Add this tag"))
.arg(Arg::with_name("remove")
.long("remove")
.short("r")
.takes_value(true)
.required(false)
.multiple(true)
.help("Remove this tag"))
.arg(Arg::with_name("set")
.long("set")
.short("s")
.takes_value(true)
.required(false)
.multiple(true)
.help("Set these tags"))
.subcommand(SubCommand::with_name("list")
.about("List tags (default)")
.version("0.1")
.arg(Arg::with_name("json")
.long("json")
.short("j")
.takes_value(false)
.required(false)
.help("List as JSON"))
.arg(Arg::with_name("linewise")
.long("linewise")
.short("l")
.takes_value(false)
.required(false)
.help("One tag per line"))
.arg(Arg::with_name("commasep")
.long("comma")
.short("c")
.takes_value(false)
.required(false)
.help("Commaseperated (default)"))
.arg(Arg::with_name("sep")
.long("sep")
.short("s")
.takes_value(true)
.required(false)
.help("Seperated by string"))
)
}