1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
extern crate bson;
extern crate ejdb;

use std::env;
use std::io::Write;

use ejdb::Database;

macro_rules! abort {
    ($code:expr, $($args:tt)*) => {{
        let _ = writeln!(&mut ::std::io::stderr(), $($args)*);
        ::std::process::exit($code);
    }}
}

fn main() {
    let db_path = env::args()
        .nth(1)
        .unwrap_or_else(|| abort!(1, "Usage: ejdb-stat <database>"));

    let db = Database::open(db_path).unwrap_or_else(|e| abort!(1, "Error opening database: {}", e));

    println!("Metadata:");
    let meta = db
        .get_metadata()
        .unwrap_or_else(|e| abort!(1, "Error loading metadata: {}", e));
    println!("{}", bson::Bson::Document(meta.into_inner()));
}