Menu
Public repository / 705fd90a65de57e8fe9074f8c225719cf6556674
AkurAI-PassVault / crates/passvault-cli/src/main.rs
Latest change 58558732228cea9b646049555021e899ee300f35 - Checkpoint WIP + add AkurAI Build CI/CD pipeline by Ólafur Búi Ólafsson
mod cmd_mcp;
mod cmd_tool;
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
let subcommand = args.get(1).map(String::as_str).unwrap_or("help");
let result = match subcommand {
"mcp" | "serve" => {
cmd_mcp::run();
Ok(())
}
"tools" => cmd_tool::list(),
"tool" => args
.get(2)
.ok_or_else(|| "tool needs an MCP tool name".to_string())
.and_then(|name| cmd_tool::run(name, args.iter().any(|arg| arg == "--confirm"))),
"version" | "-v" | "--version" => {
println!("akurai-passvault {}", env!("CARGO_PKG_VERSION"));
Ok(())
}
"help" | "-h" | "--help" => {
print_help();
Ok(())
}
other => Err(format!("unknown command '{other}'")),
};
if let Err(error) = result {
eprintln!("error: {error}");
std::process::exit(1);
}
}
fn print_help() {
println!("akurai-passvault {}", env!("CARGO_PKG_VERSION"));
println!("USAGE:");
println!(" akurai-passvault mcp|serve");
println!(" akurai-passvault tools");
println!(" akurai-passvault tool NAME [--confirm] < arguments.json");
println!(" JSON arguments are read from stdin");
println!(" delete_entry and delete_folder require --confirm");
println!(" system_status reports health/counts without secret values");
println!(" akurai-passvault version");
println!();
println!("Tool results redact password, token, and secret fields.");
}