summaryrefslogtreecommitdiffstats
path: root/imag-store
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-07-17 00:45:51 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-07-17 00:59:04 +0200
commit555ea158aafaad644350a42c26168708324e749f (patch)
tree53f7fdcd6e1b0b0569af6acea20d220a9b1843f4 /imag-store
parent6b1fdfbc1d172337b6aeb9f45ebb5e40c918244f (diff)
Add "verify" feature in imag-store
Diffstat (limited to 'imag-store')
-rw-r--r--imag-store/Cargo.toml2
-rw-r--r--imag-store/src/main.rs3
-rw-r--r--imag-store/src/ui.rs5
-rw-r--r--imag-store/src/verify.rs13
4 files changed, 23 insertions, 0 deletions
diff --git a/imag-store/Cargo.toml b/imag-store/Cargo.toml
index 3a3aa737..27cd787d 100644
--- a/imag-store/Cargo.toml
+++ b/imag-store/Cargo.toml
@@ -12,6 +12,8 @@ toml = "0.1.25"
[dependencies.libimagstore]
path = "../libimagstore"
+default-features = false
+features = ["verify"]
[dependencies.libimagrt]
path = "../libimagrt"
diff --git a/imag-store/src/main.rs b/imag-store/src/main.rs
index c2996fc1..56c46241 100644
--- a/imag-store/src/main.rs
+++ b/imag-store/src/main.rs
@@ -33,6 +33,7 @@ mod get;
mod retrieve;
mod ui;
mod update;
+mod verify;
mod util;
use create::create;
@@ -41,6 +42,7 @@ use get::get;
use retrieve::retrieve;
use ui::build_ui;
use update::update;
+use verify::verify;
fn main() {
let rt = generate_runtime_setup("imag-store",
@@ -63,6 +65,7 @@ fn main() {
"get" => get(&rt),
"retrieve" => retrieve(&rt),
"update" => update(&rt),
+ "verify" => verify(&rt),
_ => {
debug!("Unknown command");
// More error handling
diff --git a/imag-store/src/ui.rs b/imag-store/src/ui.rs
index 220c8433..a317a445 100644
--- a/imag-store/src/ui.rs
+++ b/imag-store/src/ui.rs
@@ -181,4 +181,9 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
.help("Remove Store Entry with this path. Root (/) is the store itself")
.value_name("PATH"))
)
+
+ .subcommand(SubCommand::with_name("verify")
+ .about("Verify the store")
+ .version("0.1")
+ )
}
diff --git a/imag-store/src/verify.rs b/imag-store/src/verify.rs
new file mode 100644
index 00000000..ca836e3f
--- /dev/null
+++ b/imag-store/src/verify.rs
@@ -0,0 +1,13 @@
+use std::process::exit;
+
+use libimagrt::runtime::Runtime;
+
+pub fn verify(rt: &Runtime) {
+ if rt.store().verify() {
+ info!("Store seems to be fine");
+ } else {
+ warn!("Store seems to be broken somehow");
+ exit(1);
+ }
+}
+