diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-02-23 12:15:36 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-03-19 15:16:20 +0100 |
commit | 60db10ff641bc04a8dda23bd179326a13f4eac38 (patch) | |
tree | 1f1b3cbfc1c888abc36359f73d77526b7d0e8a73 /imag-link | |
parent | 2937f199582cbaf471005aebfe949664bbf272a7 (diff) |
Add interface specification
Diffstat (limited to 'imag-link')
-rw-r--r-- | imag-link/src/main.rs | 4 | ||||
-rw-r--r-- | imag-link/src/ui.rs | 91 |
2 files changed, 95 insertions, 0 deletions
diff --git a/imag-link/src/main.rs b/imag-link/src/main.rs index 315b1d93..2930d3b3 100644 --- a/imag-link/src/main.rs +++ b/imag-link/src/main.rs @@ -11,6 +11,10 @@ extern crate libimagutil; use libimagstore::store::Store; +mod ui; + +use ui::build_ui; + fn main() { println!("Hello, world!"); } diff --git a/imag-link/src/ui.rs b/imag-link/src/ui.rs new file mode 100644 index 00000000..39828e15 --- /dev/null +++ b/imag-link/src/ui.rs @@ -0,0 +1,91 @@ +use clap::{Arg, App, SubCommand}; + +pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> { + app + .subcommand(SubCommand::with_name("internal") + .about("Add, remove and list internal links") + .version("0.1") + .subcommand(SubCommand::with_name("add") + .about("Add link from one entry to another (and vice-versa)") + .version("0.1") + .arg(Arg::with_name("from") + .long("from") + .short("f") + .takes_value(true) + .required(true) + .help("Link from this entry")) + .arg(Arg::with_name("to") + .long("to") + .short("t") + .takes_value(true) + .required(true) + .multiple(true) + .help("Link to this entries")) + ) + + .subcommand(SubCommand::with_name("remove") + .about("Remove a link between two or more entries") + .version("0.1") + .arg(Arg::with_name("from") + .long("from") + .short("f") + .takes_value(true) + .required(true) + .help("Remove Link from this entry")) + .arg(Arg::with_name("to") + .long("to") + .short("t") + .takes_value(true) + .required(true) + .multiple(true) + .help("Remove links to these entries")) + ) + + .arg(Arg::with_name("list") + .long("list") + .short("l") + .takes_value(false) + .required(false) + .help("List links to this entry")) + ) + .subcommand(SubCommand::with_name("external") + .about("Add and remove external links") + .version("0.1") + + .arg(Arg::with_name("id") + .long("id") + .short("i") + .takes_value(true) + .required(true) + .help("Modify external link of this entry")) + + .arg(Arg::with_name("set") + .long("set") + .short("s") + .takes_value(true) + .required(false) + .help("Set this URI as external link")) + + .arg(Arg::with_name("remove") + .long("remove") + .short("r") + .takes_value(false) + .required(false) + .help("Remove external link")) + + .arg(Arg::with_name("list") + .long("list") + .short("l") + .takes_value(false) + .required(false) + .help("List external link")) + + .arg(Arg::with_name("show") + .long("show") + .short("s") + .takes_value(false) + .required(false) + .help("List external link (alias for --list)")) + ) +} + |