refactor: simplify cli args
Diff
src/cli.rs | 10 +++-------
src/main.rs | 9 +++++----
2 files changed, 8 insertions(+), 11 deletions(-)
@@ -2,14 +2,10 @@ use clap::Parser;
#[derive(Parser, Debug)]
pub struct Args {
#[arg(long, default_value = "screenshot-%Y-%m-%d_%H-%M-%S.png")]
pub filename_format: Option<String>,
#[arg(short, long)]
pub out: String,
}
@@ -11,11 +11,11 @@ mod imaging;
fn main() {
let args = cli::Args::parse();
capture_all_displays(args.out, args.filename_format.unwrap_or_default());
capture_all_displays(args.out);
}
fn capture_all_displays(out_dir: String, filename_format: String) {
fn capture_all_displays(filename: String) {
let captures: Vec<_> = graphics::Display::get_displays()
.iter()
.filter_map(|screen| screen.capture().ok())
@@ -25,10 +25,11 @@ fn capture_all_displays(out_dir: String, filename_format: String) {
if !img.is_empty() {
let timestamp: DateTime<Local> = Utc::now().with_timezone(&Local);
const FILENAME_FORMAT: &str = "screenshot-%Y-%m-%d_%H-%M-%S.png";
let mut path = PathBuf::from(out_dir);
let mut path = PathBuf::from(timestamp.format(&filename).to_string());
if path.is_dir() {
path = path.join(timestamp.format(&filename_format).to_string());
path = path.join(timestamp.format(FILENAME_FORMAT).to_string());
}
match img.save(generate_filename(&path)) {