lich 0.2.0

Minimal password management.
Documentation
use clap;
use common::*;
use entry;
use std::fs::OpenOptions;
use std::path::PathBuf;
use lich::Data;

pub fn run(path: PathBuf) -> Result<(), clap::Error> {
    let pwd = entry::new_password();
    
    let data = Data::new(pwd)
        .map_err(|e| create_error(&path, e))?;

    let mut file = OpenOptions::new()
        .write(true)
        .create_new(true)
        .open(&path)
        .map_err(|e| create_error(&path, e))?;

    save(&mut file, &path, &data)?;
    println!("Initialized password store at {}.", path.display());
    Ok(())
}