#!/usr/bin/env sh

# Source: https://github.com/niedzielski/cb

# If not sourced, set safety options.
case "$0" in */cb) set -eu ;; esac

case "${OSTYPE:-}$(uname)" in
 [lL]inux*) ;;
 [dD]arwin*) mac_os=1 ;;
  [cC]ygwin) win_os=1 ;;
          *) echo "Unknown operating system \"${OSTYPE:-}$(uname)\"." >&2; false ;;
esac

#is_wayland() { [ "$XDG_SESSION_TYPE" = 'wayland' ]; }
is_wayland() { [ 1 -eq 0 ]; }
is_mac() { [ ${mac_os-0} -ne 0 ]; }
is_win() { [ ${win_os-0} -ne 0 ]; }

if is_mac; then
  alias cbcopy=pbcopy
  alias cbpaste=pbpaste
elif is_win; then
  alias cbcopy=putclip
  alias cbpaste=getclip
else
  if is_wayland; then
    alias cbcopy=wl-copy
    alias cbpaste=wl-paste
  else
    alias cbcopy='xclip -sel c'
    alias cbpaste='xclip -sel c -o'
  fi
fi

cb() {
  if [ ! -t 0 ] && [ $# -eq 0 ]; then
    # No stdin and no call for --help, blow away the current clipboard and copy.
    cbcopy
  else
    cbpaste "$@"
  fi
}

# If not sourced, execute.
case "$0" in */cb) cb "$@" ;; esac
