#!/bin/sh -eu base="https://0x0.st" field="file" expires= while getopts e:u:f:h opt; do case "$opt" in e) if ! printf %d "$OPTARG" >/dev/null 2>&1; then printf "%s: invalid number '%d'\n" "${0##*/}" "$OPTARG" exit 1 fi expires="$OPTARG" ;; u) base="$OPTARG" ;; f) field="$OPTARG" ;; h) cat <<-EOF Usage: ${0##*/} [-e EXPIRES] [FILE] Upload FILE (or stdin) to a pastebin and print the URL -e EXPIRES Set the expiration time, either hours or epoch milliseconds -u URL Provide a different pastebin (default: https://0x0.st) -f FIELD Use a different field name for the file (default: file) EOF exit 0 ;; ?) printf 'Usage: %s [-e EXPIRES] [FILE]\n' "${0##*/}" exit 1 ;; esac done shift $((OPTIND-1)) if [ $# -gt 1 ]; then printf 'Usage: %s [-e EXPIRES] [FILE]\n' "${0##*/}" exit 1 fi file="${1:-/dev/stdin}" [ "$file" = '-' ] && file="/dev/stdin" url="$(curl -fsS -F "$field"=@"$file" ${expires:+-F expires="$expires"} "$base")" printf '%s\n' "$url" wl-copy "$url"