use std::{error::Error, process::Command};
pub fn get_jarm_fingerprint(domain: &str) -> Result<String, Box<dyn Error>> {
let output = Command::new("python3")
.args(&["jarm.py", domain])
.output()?;
if output.status.success() {
let raw_output = String::from_utf8(output.stdout)?;
let jarm_fingerprint_option = raw_output.split_whitespace().last();
#[allow(unused_assignments)]
let mut jarm_fingerprint: &str = "";
match jarm_fingerprint_option {
Some(j) => {
jarm_fingerprint = j;
}
None => {
jarm_fingerprint = "";
}
};
Ok(jarm_fingerprint.to_string())
} else {
let err = String::from_utf8(output.stderr)?;
error_chain::bail!("Error generating JARM fingerprint:\n {}", err)
}
}