Files
scrot/cli/scrot-clip-pull
T

27 lines
644 B
Bash
Raw Normal View History

#!/usr/bin/env bash
# Fetches the latest `clip` blob from scrot and writes it into the local
# system clipboard.
set -euo pipefail
: "${SCROT_SERVER:?set SCROT_SERVER, e.g. https://scrot.example.com}"
: "${DEVICE_TOKEN:?set DEVICE_TOKEN}"
response=$(curl -sf -w '\n%{http_code}' "$SCROT_SERVER/api/clip/latest" \
-H "X-Device-Token: $DEVICE_TOKEN")
status="${response##*$'\n'}"
body="${response%$'\n'*}"
if [ "$status" = "204" ]; then
echo "no clip yet" >&2
exit 1
fi
if [ -n "${WAYLAND_DISPLAY:-}" ]; then
printf '%s' "$body" | wl-copy
else
printf '%s' "$body" | xclip -selection clipboard
fi
echo "clip pulled into clipboard"