From 8438d2ee708656c80e8e84371e0a89a54a7f14d9 Mon Sep 17 00:00:00 2001 From: Jonathan Hodgson Date: Tue, 24 Sep 2019 17:11:29 +0100 Subject: [PATCH] Adds url encode and decode scripts --- bin/.bin/urldecode | 20 ++++++++++++++++++++ bin/.bin/urlencode | 27 +++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100755 bin/.bin/urldecode create mode 100755 bin/.bin/urlencode diff --git a/bin/.bin/urldecode b/bin/.bin/urldecode new file mode 100755 index 00000000..cec834f3 --- /dev/null +++ b/bin/.bin/urldecode @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +##Helper Functions + +urldecode() { + # urldecode + local url_encoded="${1//+/ }" + printf '%b' "${url_encoded//%/\\x}" +} + +string="$1" +if [ -z "$string" ]; then + string="$(cat)" +fi + +#URL +decoded=$(urldecode "$string") +if [ "$decoded" != "$string" ]; then + echo "$decoded" +fi diff --git a/bin/.bin/urlencode b/bin/.bin/urlencode new file mode 100755 index 00000000..2a867dab --- /dev/null +++ b/bin/.bin/urlencode @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +##Helper Functions + +urlencodespecial() { + # urlencode + old_lc_collate=$LC_COLLATE + LC_COLLATE=C + local length="${#1}" + for (( i = 0; i < length; i++ )); do + local c="${1:i:1}" + case $c in + [a-zA-Z0-9.~_-]) printf "$c" ;; + *) printf '%%%02X' "'$c" ;; + esac + done + LC_COLLATE=$old_lc_collate +} + +string="$1" +if [ -z "$string" ]; then + string="$(cat)" +fi + +#URL +urlencodespecial "$string" +