diff --git a/bin/core/imag-gps/src/main.rs b/bin/core/imag-gps/src/main.rs index e7a11a96..e3069abf 100644 --- a/bin/core/imag-gps/src/main.rs +++ b/bin/core/imag-gps/src/main.rs @@ -1,3 +1,26 @@ +// +// imag - the personal information management suite for the commandline +// Copyright (C) 2015, 2016 Matthias Beyer and contributors +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; version +// 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// + +extern crate clap; + +mod ui; + fn main() { println!("Hello, world!"); } diff --git a/bin/core/imag-gps/src/ui.rs b/bin/core/imag-gps/src/ui.rs new file mode 100644 index 00000000..b96dc068 --- /dev/null +++ b/bin/core/imag-gps/src/ui.rs @@ -0,0 +1,91 @@ +// +// imag - the personal information management suite for the commandline +// Copyright (C) 2015, 2016 Matthias Beyer and contributors +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; version +// 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// + +use clap::{Arg, App, SubCommand}; + +pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> { + app + .subcommand(SubCommand::with_name("add") + .about("Add GPS coordinates to an entry") + .version("0.1") + .arg(Arg::with_name("longitude") + .long("long") + .takes_value(true) + .required(true) + .multiple(false) + .help("Set the longitude value. Format: ..") + .value_name("LONGITUDE")) + .arg(Arg::with_name("latitude") + .long("lat") + .takes_value(true) + .required(true) + .multiple(false) + .help("Set the latitude. Format: ..") + .value_name("LATITUDE")) + .arg(Arg::with_name("entry") + .index(1) + .takes_value(true) + .required(true) + .multiple(false) + .help("The entry to add the latitude/longitude to") + .value_name("ENTRY")) + ) + + .subcommand(SubCommand::with_name("remove") + .about("Remove a GPS coordinate pair from an entry") + .version("0.1") + .arg(Arg::with_name("print-removed") + .long("print-removed") + .short("p") + .takes_value(false) + .required(false) + .help("Print the removed values after removing them")) + .arg(Arg::with_name("entry") + .index(1) + .takes_value(true) + .required(true) + .multiple(false) + .help("The entry to remove the latitude/longitude from") + .value_name("ENTRY")) + ) + + .subcommand(SubCommand::with_name("get") + .about("Get a GPS coordinate pair from an entry") + .version("0.1") + .arg(Arg::with_name("entry") + .index(1) + .takes_value(true) + .required(true) + .multiple(false) + .help("The entry to get the latitude/longitude from") + .value_name("ENTRY")) + .arg(Arg::with_name("format-json") + .long("json") + .takes_value(false) + .required(false) + .multiple(false) + .help("Get as JSON Object")) + .arg(Arg::with_name("format-print") + .long("print") + .takes_value(false) + .required(false) + .multiple(false) + .help("Print as = pairs (2 lines, default)")) + ) +}