Rewrite bin/{pb,rclip}

This commit is contained in:
Henrik Lissner 2017-04-25 21:57:49 -04:00
parent 75683bac23
commit f545be6b3f
2 changed files with 16 additions and 27 deletions

4
bin/pb
View file

@ -5,7 +5,7 @@
if [[ -t 0 ]]; then
if command -v xclip >/dev/null; then
xclip -selection clipboard -out
xclip -display :0 -selection clipboard -out
elif command -v xsel >/dev/null; then
xsel --clipboard --output
elif command -v pbpaste >/dev/null; then
@ -16,7 +16,7 @@ if [[ -t 0 ]]; then
fi
else
if command -v xclip >/dev/null; then
xclip -selection clipboard -in
xclip -display :0 -selection clipboard -in
elif command -v xsel >/dev/null; then
xsel --clipboard --input
elif command -v pbcopy >/dev/null; then

View file

@ -1,30 +1,24 @@
#!/usr/bin/env bash
# Remote clipboard insertion via SSH
# By Henrik Lissner <henrik@lissner.net>
#
# A simple script for sending data to another computer's clipboard via SSH. Acts as
# a universal clipboard. This script must be available on the remote. Pipe through gpg
# if you want the contents encrypted.
# A simple script for sending data to another computer's clipboard via SSH. Acts
# as a universal clipboard. This script must be available on the remote. Pipe
# through gpg if you want the contents encrypted.
#
# It helps if your ssh connection is pubkey authenticated and password-less.
#
# If the destination (or host) is a mac, use pbcopy and pbpaste instead.
# Requires: pb (script, in same folder)
#
# Workflow:
# host $ echo "Hello world!" | rclip.sh guest
# guest $ rclip.sh
# host $ echo "Hello world!" | rclip guest
# guest $ rclip
# Hello world!
# OR
# host $ echo "Hello world!" | gpg -e | rclip.sh guest
# guest $ rclip.sh | gpg -d
# guest $ rclip | gpg -d
# Hello world!
pb=/tmp/rcopy-pb
bin="${0##*/}"
copy() { [[ $OSTYPE == darwin* ]] && pbpaste; }
target="$1"
flags=
while getopts p:i:l: opt; do
case $opt in
@ -38,20 +32,15 @@ while getopts p:i:l: opt; do
done
shift $((OPTIND-1))
if [[ -t 1 || $force_output ]]; then
target="$1"
if [[ $target ]]; then
ssh $flags -qt "$target" "$bin"
elif [[ $OSTYPE == darwin* ]]; then
pbpaste
elif [[ -f $pb ]]; then
cat "$pb"
if [[ -t 0 ]]; then
pb | $bin $target
else
exit 1
ssh $flags -qt "$target" "pb" && echo "Sent to $target"
fi
elif [[ $target ]]; then
ssh $flags -q "$target" "$bin"
else
tee "$pb" | copy
pb
fi
# vim:set ft=sh: