use anyhow::Result;
use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
pub struct ClipboardArgs {
#[command(subcommand)]
pub command: ClipboardCommand,
}
#[derive(Subcommand, Debug)]
pub enum ClipboardCommand {
Image(ClipboardImageArgs),
}
#[derive(Parser, Debug)]
pub struct ClipboardImageArgs {
#[arg(long)]
pub print: bool,
}
pub fn execute(args: ClipboardArgs) -> Result<()> {
match args.command {
ClipboardCommand::Image(args) => image(args.print),
}
}
fn image(print: bool) -> Result<()> {
let image = crate::image_clipboard::capture_image()?;
if print {
println!("{}", image.data_url);
return Ok(());
}
crate::image_clipboard::copy_text(&image.data_url)?;
eprintln!("Copied image paste text. Paste it into the remote CodeTether TUI.");
Ok(())
}