diff options
Diffstat (limited to 'unshorten.sh')
-rwxr-xr-x | unshorten.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/unshorten.sh b/unshorten.sh new file mode 100755 index 0000000..8a3b49e --- /dev/null +++ b/unshorten.sh @@ -0,0 +1,18 @@ +#!/bin/sh +uri="$1" +path="$(printf '%s\n' "$uri" | uricut -p)" +scheme="$(printf '%s\n' "$uri" | uricut -s)" +domain="$(printf '%s\n' "$uri" | uricut -d)" +port="$(printf '%s\n' "$uri" | uricut -P)" + +case "$scheme" in + http*) + curl -Lsi "$1" | grep -i ^Location: | head -n1 | tr -s ' ' | tr -d '\r' | cut '-d ' -f2- | sed 's|^/|'"$scheme"'://'"$domain"'/|g' + ;; + gemini) + gemini-get "$1" | head -n1 | sed 's/^3[0-9] //g' + ;; + *) + printf "dunno how to handle this type of URI\n" + ;; +esac |