Last active
May 9, 2025 02:14
-
-
Save rukh-debug/cc42900f86e39cacef6f7a6ba77ebf58 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # Author: rukh-debug | |
| # Date: 2025 Feb 16 | |
| # https://github.com/orhun/rustypaste <3 | |
| # This script is a very minimal UI for rustyPaste server - built for poweruser. | |
| # demo: https://i.postimg.cc/MHXFPdCq/image.png | |
| # Requirements: zenity, wl-copy | |
| SERVER="https://your.server.url" | |
| AUTH_TOKEN=$(cat ~/.secrets/rustypaste.secret) | |
| # Function to copy to clipboard | |
| copy_to_clipboard() { | |
| echo "$1" | wl-copy | |
| # zenity --info --title "Success" --text "URL copied to clipboard:\n$1" | |
| notify-send "Success" "URL copied to clipboard:\n$1" | |
| exit 0 | |
| } | |
| # Main menu | |
| while true; do | |
| choice=$(zenity --list \ | |
| --title "Upload Options" \ | |
| --column "Options" \ | |
| "Paste Text" \ | |
| "Upload File" \ | |
| "Upload File with Expiry" \ | |
| "One-shot File" \ | |
| "One-shot URL" \ | |
| "Shorten URL" \ | |
| "Upload from Remote URL" \ | |
| "Exit") | |
| case $choice in | |
| "Paste Text") | |
| text=$(zenity --text-info \ | |
| --title "Paste Text" \ | |
| --width 400 \ | |
| --height 300 \ | |
| --editable) | |
| if [ $? -eq 0 ] && [ ! -z "$text" ]; then | |
| url=$(echo "$text" | curl -H "Authorization: $AUTH_TOKEN" -F "file=@-" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "Upload File") | |
| file=$(zenity --file-selection --title "Select File") | |
| if [ $? -eq 0 ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "file=@$file" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "Upload File with Expiry") | |
| file=$(zenity --file-selection --title "Select File") | |
| if [ $? -eq 0 ]; then | |
| expiry=$(zenity --entry \ | |
| --title "Set Expiry" \ | |
| --text "Enter expiry time (e.g., 10min, 1h, 1d):") | |
| if [ $? -eq 0 ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "file=@$file" -H "expire:$expiry" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| fi | |
| ;; | |
| "One-shot File") | |
| file=$(zenity --file-selection --title "Select One-shot File") | |
| if [ $? -eq 0 ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "oneshot=@$file" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "One-shot URL") | |
| url_input=$(zenity --entry \ | |
| --title "One-shot URL" \ | |
| --text "Enter URL:") | |
| if [ $? -eq 0 ] && [ ! -z "$url_input" ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "oneshot_url=$url_input" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "Shorten URL") | |
| long_url=$(zenity --entry \ | |
| --title "URL Shortener" \ | |
| --text "Enter long URL:") | |
| if [ $? -eq 0 ] && [ ! -z "$long_url" ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "url=$long_url" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "Upload from Remote URL") | |
| remote_url=$(zenity --entry \ | |
| --title "Remote URL Upload" \ | |
| --text "Enter remote file URL:") | |
| if [ $? -eq 0 ] && [ ! -z "$remote_url" ]; then | |
| url=$(curl -H "Authorization: $AUTH_TOKEN" -F "remote=$remote_url" "$SERVER") | |
| copy_to_clipboard "$url" | |
| fi | |
| ;; | |
| "Exit") | |
| exit 0 | |
| ;; | |
| *) | |
| exit 0 | |
| ;; | |
| esac | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment