#!/bin/bash upload() { if [ $# -eq 0 ]; then echo "No arguments specified." echo "Usage: upload " echo "... | upload " >&2 return 1 fi if tty -s; then file="$1" file_name=$(basename "$file") if [ ! -e "$file" ]; then echo "$file: No such file or directory" >&2 return 1 fi if [ -d "$file" ]; then file_name="$file_name.zip" url=$( (cd "$file" && zip -r -q - .) | curl --progress-bar --upload-file - "https://upload.woodburn.au/$file_name" | tee /dev/null) else url=$(cat "$file" | curl --progress-bar --upload-file - "https://upload.woodburn.au/$file_name" | tee /dev/null) fi # Generate and display the QR code for the URL in the terminal echo -e "\n\n" qrencode -t utf8 "$url" echo -e "\n" echo "$url" echo -e "\n" else file_name=$1 url="https://upload.woodburn.au/$file_name" echo -n "$url" | curl --progress-bar --upload-file - "$url" | tee /dev/null fi } # Call the upload function with the provided arguments upload "$@"