use std::io::{self, Write};
use crate::infra::clipboard::{read_clipboard_text, ClipboardError};
use crate::{CmdOutcome, CmdResult};
pub(crate) fn handle() -> CmdResult {
match read_clipboard_text() {
Ok(text) => {
io::stdout().write_all(text.as_bytes())?;
Ok(CmdOutcome::Ok)
}
Err(ClipboardError::NoProvider) => {
eprintln!(
"runex paste-clipboard: no clipboard provider found. \
On Linux install xclip, wl-clipboard, or xsel; \
on WSL ensure powershell.exe is on PATH; \
on macOS pbpaste is built in."
);
Ok(CmdOutcome::ExitCode(1))
}
Err(e) => {
eprintln!("runex paste-clipboard: {e}");
Ok(CmdOutcome::ExitCode(1))
}
}
}