|
|
|
@ -1,3 +1,5 @@
|
|
|
|
|
#![warn(clippy::all)]
|
|
|
|
|
|
|
|
|
|
use crypto::hmac::Hmac;
|
|
|
|
|
use crypto::mac::{Mac, MacResult};
|
|
|
|
|
use crypto::sha2::Sha256;
|
|
|
|
@ -168,21 +170,38 @@ fn shell_generate() {
|
|
|
|
|
generate::generate(&spec);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn shell(db_conn: &mut db::DbHandle, master_key: [u8; 32], namespace: &str) {
|
|
|
|
|
fn change_namespace(db_conn: &mut db::DbHandle, master_key: [u8; 32]) -> String {
|
|
|
|
|
let namespaces = db_conn.list_namespaces(master_key).unwrap();
|
|
|
|
|
let selection = Select::with_theme(&ColorfulTheme::default())
|
|
|
|
|
.with_prompt("Change Namespace")
|
|
|
|
|
.default(0)
|
|
|
|
|
.items(&namespaces[..])
|
|
|
|
|
.interact()
|
|
|
|
|
.unwrap();
|
|
|
|
|
namespaces[selection].name.to_owned()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn shell(db_conn: &mut db::DbHandle, master_key: [u8; 32], _namespace: &str) {
|
|
|
|
|
let mut namespace: String = _namespace.to_owned();
|
|
|
|
|
|
|
|
|
|
loop {
|
|
|
|
|
let selections = &["get", "list", "set", "generate", "exit"];
|
|
|
|
|
let selections = &["get", "list", "set", "generate", "change namespace", "exit"];
|
|
|
|
|
let main_menu_prompt = format!("Main Menu ({})", namespace);
|
|
|
|
|
|
|
|
|
|
let selection = Select::with_theme(&ColorfulTheme::default())
|
|
|
|
|
.with_prompt("Main Menu")
|
|
|
|
|
.with_prompt(&main_menu_prompt)
|
|
|
|
|
.default(0)
|
|
|
|
|
.items(&selections[..])
|
|
|
|
|
.interact()
|
|
|
|
|
.unwrap();
|
|
|
|
|
match selections[selection] {
|
|
|
|
|
"get" => get(db_conn, master_key, namespace),
|
|
|
|
|
"list" => list(db_conn, master_key, namespace),
|
|
|
|
|
"set" => set(db_conn, master_key, namespace),
|
|
|
|
|
"get" => get(db_conn, master_key, &namespace),
|
|
|
|
|
"list" => list(db_conn, master_key, &namespace),
|
|
|
|
|
"set" => set(db_conn, master_key, &namespace),
|
|
|
|
|
"generate" => shell_generate(),
|
|
|
|
|
"change namespace" => {
|
|
|
|
|
namespace = change_namespace(db_conn, master_key);
|
|
|
|
|
}
|
|
|
|
|
"exit" => break,
|
|
|
|
|
_ => panic!("Unrecognized command"),
|
|
|
|
|
};
|
|
|
|
|