imag/imag-store/src/main.rs

72 lines
1.6 KiB
Rust
Raw Normal View History

2016-04-21 11:27:05 +00:00
#![deny(
non_camel_case_types,
non_snake_case,
path_statements,
trivial_numeric_casts,
unstable_features,
unused_allocation,
unused_import_braces,
unused_imports,
unused_must_use,
unused_mut,
unused_qualifications,
while_true,
)]
2016-01-23 14:38:14 +00:00
extern crate clap;
#[macro_use] extern crate log;
2016-02-01 18:17:00 +00:00
extern crate semver;
2016-01-23 14:38:14 +00:00
extern crate toml;
#[macro_use] extern crate version;
extern crate libimagrt;
extern crate libimagstore;
extern crate libimagutil;
#[macro_use] extern crate libimagerror;
2016-01-23 14:38:14 +00:00
use libimagrt::setup::generate_runtime_setup;
2016-01-23 15:29:04 +00:00
2016-01-24 19:19:56 +00:00
mod error;
2016-01-23 15:01:17 +00:00
mod ui;
2016-01-23 15:29:04 +00:00
mod create;
mod retrieve;
2016-01-23 15:29:04 +00:00
mod update;
mod delete;
mod util;
2016-01-23 15:01:17 +00:00
use ui::build_ui;
2016-01-23 15:29:04 +00:00
use create::create;
use retrieve::retrieve;
2016-01-23 15:29:04 +00:00
use update::update;
use delete::delete;
2016-01-23 15:01:17 +00:00
2016-01-23 14:35:31 +00:00
fn main() {
let rt = generate_runtime_setup("imag-store",
&version!()[..],
"Direct interface to the store. Use with great care!",
build_ui);
2016-01-23 15:29:04 +00:00
rt.cli()
.subcommand_name()
.map_or_else(
|| {
debug!("No command");
// More error handling
},
|name| {
debug!("Call: {}", name);
match name {
"create" => create(&rt),
"retrieve" => retrieve(&rt),
2016-01-23 15:29:04 +00:00
"update" => update(&rt),
"delete" => delete(&rt),
_ => {
debug!("Unknown command");
// More error handling
},
};
}
)
2016-01-23 14:35:31 +00:00
}
2016-01-23 15:29:04 +00:00