mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 23:01:30 +00:00
28 lines
780 B
TypeScript
28 lines
780 B
TypeScript
import { execSync } from "child_process";
|
|
import { platform } from "os";
|
|
|
|
export function copyToClipboard(text: string): void {
|
|
const p = platform();
|
|
const options = { input: text, timeout: 5000 };
|
|
|
|
try {
|
|
if (p === "darwin") {
|
|
execSync("pbcopy", options);
|
|
} else if (p === "win32") {
|
|
execSync("clip", options);
|
|
} else {
|
|
// Linux - try xclip first, fall back to xsel
|
|
try {
|
|
execSync("xclip -selection clipboard", options);
|
|
} catch {
|
|
execSync("xsel --clipboard --input", options);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
const msg = error instanceof Error ? error.message : String(error);
|
|
if (p === "linux") {
|
|
throw new Error(`Failed to copy to clipboard. Install xclip or xsel: ${msg}`);
|
|
}
|
|
throw new Error(`Failed to copy to clipboard: ${msg}`);
|
|
}
|
|
}
|