use std::env;
use std::path::Path;
use vios_core::vault::vault_crypto::{encrypt_and_save_vault, must_get_password};
use vios_core::vault::vault_structs::{VaultMetadata, VaultPayload};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = env::args().skip(1);
let out_path = args
.next()
.unwrap_or_else(|| "docvault_output.vault".to_string());
let creator = args.next().unwrap_or_else(|| "DocVault".to_string());
let content = args
.next()
.unwrap_or_else(|| "Generated by docvault".to_string());
let password = must_get_password();
let mut payload = VaultPayload {
metadata: VaultMetadata {
creator_name: creator.clone(),
..Default::default()
},
content,
creator_name: String::new(), };
payload.creator_name = payload.metadata.creator_name.clone();
let bytes = serde_json::to_vec(&payload)?;
encrypt_and_save_vault(Path::new(&out_path).to_str().unwrap(), &password, &bytes)?;
println!("✅ docvault wrote: {out_path}");
Ok(())
}