use clap::Parser;
use std::time::{SystemTime, UNIX_EPOCH};
const LICENSE: &str = include_str!("../LICENSE");
#[derive(Parser)]
#[command(version, about)]
pub struct Args {
#[arg(short, long)]
pub gif: bool,
#[arg(short, long)]
pub tags: Option<String>,
#[arg(short, long)]
pub display: Option<String>,
#[arg(short, long)]
pub square: bool,
#[arg(short, long)]
pub mono: bool,
#[arg(long)]
pub width: Option<usize>,
#[arg(long)]
pub height: Option<usize>,
#[arg(long)]
pub blur: Option<f32>,
#[arg(long)]
pub red: Option<u8>,
#[arg(long)]
pub green: Option<u8>,
#[arg(long)]
pub blue: Option<u8>,
#[arg(long)]
pub brightness: Option<f32>,
#[arg(long)]
pub saturation: Option<f32>,
#[arg(long)]
pub hue: Option<f32>,
#[arg(long)]
pub lightness: Option<f32>,
#[arg(short, long)]
pub output: Option<String>,
#[arg(short, long)]
pub row: Option<i16>,
#[arg(short, long)]
pub column: Option<u16>,
#[arg(short)]
pub x: Option<u32>,
#[arg(short)]
pub y: Option<u32>,
#[arg(long)]
copyright: bool,
}
impl Args {
pub fn get() -> Self {
let args = Args::parse();
if args.copyright {
let current_year = 1970
+ (SystemTime::now()
.duration_since(UNIX_EPOCH)
.expect("Time went backwards")
.as_secs()
/ (365 * 24 * 60 * 60));
let copyright = if current_year > 2025 {
&format!("Copyright (c) 2025-{current_year} Adam Perkowski")
} else {
"Copyright (c) 2025 Adam Perkowski"
};
println!(
"{copyright}\n\n{}",
LICENSE.lines().skip(4).collect::<Vec<_>>().join("\n")
);
std::process::exit(0);
}
args
}
}