#!/bin/bash
# OSC 52 clipboard provider — sends clipboard data to the host system clipboard
# via OSC 52 terminal escape sequences. Installed as xclip/xsel/pbcopy so that
# programs inside the container (e.g. Claude Code) can copy to clipboard.
#
# Supports common invocations:
#   echo "text" | xclip -selection clipboard
#   echo "text" | xsel --clipboard --input
#   echo "text" | pbcopy
#
# Paste/output requests exit silently (not supported via OSC 52).

# Detect paste/output mode — exit silently since we can't read the host clipboard
for arg in "$@"; do
    case "$arg" in
        -o|--output) exit 0 ;;
    esac
done

# Read all input from stdin
data=$(cat)
[ -z "$data" ] && exit 0

# Base64 encode and write OSC 52 escape sequence to the controlling terminal
encoded=$(printf '%s' "$data" | base64 | tr -d '\n')
printf '\033]52;c;%s\a' "$encoded" > /dev/tty 2>/dev/null
