1
/// A simple application that lists digital signatures from a git repository
2
use review_harvest::{
3
    git_signatures::{check_signatures, get_signatures},
4
    gpg::load_keys,
5
};
6
use std::path::PathBuf;
7

            
8
type Result<T> = anyhow::Result<T>;
9

            
10
4
fn main() -> Result<()> {
11
4
    let mut args = std::env::args();
12
4
    let repo_dir = args.nth(1).expect("Missing repo_dir argument");
13
4
    let gpg_dir = PathBuf::from(args.next().expect("Missing gpg_dir argument"));
14
4
    let certs = load_keys(&gpg_dir)?;
15
4
    let repo = git2::Repository::open(repo_dir)?;
16
4
    let signatures = get_signatures(&repo)?;
17
4
    println!("got {} signatures", signatures.len());
18
4
    let r = check_signatures(&certs, signatures)?;
19
4
    let json = serde_json::to_string_pretty(&r.valid_signatures)?;
20
2
    eprintln!("{}", json);
21
2
    Ok(())
22
2
}