diff --git a/send.to.0x0.sh b/send.to.0x0.sh new file mode 100755 index 0000000..eddeda2 --- /dev/null +++ b/send.to.0x0.sh @@ -0,0 +1,80 @@ +#!/bin/sh +# .. vim: foldmarker=[[[,]]]:foldmethod=marker + +# This script will try to: +## Get first argument +## Or get clipboard content if no argument +## Send this data to a file hosting service +## Print the generate url that hosting the content to stdout +## Or put it in the clipboard if no argument was given + +# Vars [[[ +debug=true +flag_clipboard=false +flag_inline=false + +null_service_url="https://null.101010.fr" + +## Colors [[[ +c_redb='\033[1;31m' +c_magentab='\033[1;35m' +c_reset='\033[0m' +## ]]] + +# ]]] + +# Functions +# Function to print a debug message [[[ +debug_message() { + _message="${1}" + + [ "${debug}" = "true" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG ${_message}" +} +# ]]] + +# Verify argument [[[ +case "$#" in + 0 ) + flag_clipboard=true + debug_message "− Verify arg : No argument was given, try to use clipboard." + ;; + 1 ) + flag_inline=true + debug_message "− Verify arg : One argument was given, use it." + ;; + * ) + printf "${c_redb}%b${c_reset}\n" "Error : Expect one argument or a content in clipboard." + exit 1 + ;; +esac +# ]]] + +# Get the content to be sended [[[ +# Try to get content from first argument +if [ "${flag_inline}" = "true" ]; then + content_to_send="${1}" +fi +# Try to get content from clipboard +if [ "${flag_clipboard}" = "true" ]; then + content_to_send=$(xclip -out -selection clipboard) +fi + +debug_message "− Get Content : content to be sended : ${content_to_send}" +# ]]] + +content_url="" + +# Manage the result [[[ +## If the URL should simply be printed to stdout +if [ "${flag_inline}" = "true" ]; then + debug_message "− Manage result : Print the result on stdout :" + printf "%b\n" "${content_url}" +fi +# If the URL should remplace the previous content of the clipboard +if [ "${flag_clipboard}" = "true" ]; then + debug_message "− Manage result : Put the result in clipboard." + echo "${content_url}" | xclip -rmlastnl -selection clipboard +fi +# ]]] + +exit 0