scripts/url.shortme.sh

74 lines
1.9 KiB
Bash
Raw Normal View History

2020-03-11 16:08:44 +01:00
#!/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 an URL shortener
## Print the short url to stdout
## Or put it in the clipboard if no argument was given
# Vars [[[
debug="0"
2020-03-11 16:48:35 +01:00
flag_clipboard=false
flag_inline=false
2020-03-11 16:08:44 +01:00
2020-03-11 16:38:05 +01:00
null_service_url="https://null.101010.fr"
2020-03-11 16:08:44 +01:00
## Colors [[[
c_redb='\033[1;31m'
c_magentab='\033[1;35m'
c_reset='\033[0m'
## ]]]
# ]]]
# Verify argument [[[
case "$#" in
0 )
2020-03-11 16:48:35 +01:00
flag_clipboard=true
2020-03-11 16:08:44 +01:00
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG Verify arg: No argument was given, try to use clipboard."
;;
1 )
2020-03-11 16:48:35 +01:00
flag_inline=true
2020-03-11 16:08:44 +01:00
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG 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
# ]]]
2020-03-11 16:36:06 +01:00
# Get URL to be shortened [[[
# Try to get URL from first argument
2020-03-11 16:48:35 +01:00
if [ "${flag_inline}" = "true" ]; then
2020-03-11 16:36:06 +01:00
url_to_short="${1}"
fi
# Try to get URL from clipboard
2020-03-11 16:48:35 +01:00
if [ "${flag_clipboard}" = "true" ]; then
2020-03-11 16:36:06 +01:00
url_to_short=$(xclip -out)
fi
2020-03-11 16:48:35 +01:00
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG Get URL: URL to be shortened: ${url_to_short}"
2020-03-11 16:36:06 +01:00
# ]]]
2020-03-11 16:38:05 +01:00
# shorten URL
result=$(curl -sF"shorten=${url_to_short}" "${null_service_url}")
2020-03-11 16:59:09 +01:00
# Manage the result [[[
## If the URL should simply be printed to stdout
if [ "${flag_inline}" = "true" ]; then
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG Manage result: Print the result on stdout:"
printf "%b\n" "${result}"
fi
# If the URL should remplace the previous content of the clipboard
if [ "${flag_clipboard}" = "true" ]; then
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG Manage result: Put the result in clipboard."
echo "${result}" | xclip -rmlastnl -selection clipboard
fi
# ]]]
2020-03-11 16:08:44 +01:00
exit 0