Lines
100 %
Functions
50 %
/// A simple application that lists digital signatures from a git repository
use review_harvest::{
git_signatures::{check_signatures, get_signatures},
gpg::load_keys,
};
use std::path::PathBuf;
type Result<T> = anyhow::Result<T>;
fn main() -> Result<()> {
let mut args = std::env::args();
let repo_dir = args.nth(1).expect("Missing repo_dir argument");
let gpg_dir = PathBuf::from(args.next().expect("Missing gpg_dir argument"));
let certs = load_keys(&gpg_dir)?;
let repo = git2::Repository::open(repo_dir)?;
let signatures = get_signatures(&repo)?;
println!("got {} signatures", signatures.len());
let r = check_signatures(&certs, signatures)?;
let json = serde_json::to_string_pretty(&r.valid_signatures)?;
eprintln!("{}", json);
Ok(())
}