summaryrefslogtreecommitdiff
path: root/unshorten.sh
diff options
context:
space:
mode:
Diffstat (limited to 'unshorten.sh')
-rwxr-xr-xunshorten.sh18
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