#!/usr/bin/env bash
# pbcopy -- macOS-style clipboard copy for this headless box.
#
# There is no X/Wayland display here, so xclip/xsel cannot reach a clipboard.
# Instead we use OSC 52: the text is handed to the terminal emulator on the
# other end of the SSH connection, which puts it on YOUR machine's clipboard.
#
#   ls -la | pbcopy
#   pbcopy < notes.md

set -euo pipefail

# A real local display (rare here, but free to support).
if [[ -n "${DISPLAY:-}" ]] && command -v xclip >/dev/null 2>&1; then
    exec xclip -selection clipboard
fi
if [[ -n "${WAYLAND_DISPLAY:-}" ]] && command -v wl-copy >/dev/null 2>&1; then
    exec wl-copy
fi

# Inside tmux: load-buffer -w fills the tmux paste buffer and, because
# set-clipboard is on, forwards OSC 52 out to the terminal emulator.
if [[ -n "${TMUX:-}" ]] && command -v tmux >/dev/null 2>&1; then
    exec tmux load-buffer -w -
fi

# Bare SSH: emit OSC 52 straight at the controlling terminal.
{ printf '\033]52;c;'; base64 | tr -d '\n'; printf '\a'; } > /dev/tty
