1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::config::Config;
use crate::errors::*;
use crate::persist::FilePersist;
use colored::Colorize;
use nix::unistd::AccessFlags;
pub fn run(config: Config) -> Result<()> {
let persist = FilePersist::new(&config);
nix::unistd::access(&config.data_dir, AccessFlags::X_OK).with_context(|| {
anyhow!(
"Detected insufficient permissions to access {:?}",
config.data_dir
)
})?;
for cert in config.certs {
let name = cert.name;
if let Some(cert) = persist.load_cert_info(&name)? {
let days_left = cert.days_left();
let status = format!("{} days left", days_left);
let status = if days_left > config.renew_if_days_left {
status.green()
} else if days_left > 0 {
status.yellow()
} else {
status.red()
};
println!("{:50} {}", name.bold(), status);
} else {
println!("{:50} -", name.bold());
}
}
Ok(())
}