#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: tmp FILE... tmp -d tmp -h EOF } help() { cat <<-'EOF' Options: -d delete the remote "tmp/" folder -h, --help show this message Copies a file to the public server. Examples: Copy f.txt: $ tmp f.txt Cleanup the $REMOTE: $ tmp -d EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done REMOTE='euandreh.xyz' DIR='/opt/www/euandreh.xyz/static/tmp' while getopts 'dh' flag; do case "$flag" in d) printf 'Deleting %s:%s...\n' "$REMOTE" "$DIR/" >&2 ssh "$REMOTE" rm -rf "$DIR" exit ;; h) usage help exit ;; *) exit 2 ;; esac done shift $((OPTIND - 1)) FILE="${1:-}" if [ -z "$FILE" ]; then printf 'Missing FILE.\n\n' >&2 usage >&2 exit 2 fi for f in "$@"; do FILENAME="$(basename "$f")" # shellcheck disable=2029 ssh "$REMOTE" "mkdir -p '$DIR' && cat > '$DIR/$FILENAME'" < "$f" LINK="$(printf 'https://%s/tmp/%s' "$REMOTE" "$FILENAME")" open "$LINK" if [ $# = 1 ]; then printf '%s' "$LINK" | copy printf 'Copied %s to the clipboard!\n' "$LINK" >&2 fi done