Skip to content

Instantly share code, notes, and snippets.

@turing85
Created January 26, 2023 00:41
Show Gist options
  • Save turing85/9996d72db5ee40da4fc151c50ee6c5c4 to your computer and use it in GitHub Desktop.
Save turing85/9996d72db5ee40da4fc151c50ee6c5c4 to your computer and use it in GitHub Desktop.
shortener
#!/usr/bin/env bash
shorten() {
if [[ -z ${1} ]]; then
echo "Please pass the string to split as 1st argument"
exit 1
fi;
text="${1}"
if [[ -z ${2} ]]; then
delimiter="-"
else
delimiter="${2}"
fi
if [[ -z ${3} ]]; then
fragment_length=2
else
fragment_length="${3}"
fi
if [[ -z ${4} ]]; then
sha_length=6
else
sha_length="${4}"
fi
result=$(echo "${text}" \
| tr "${delimiter}" "\n" \
| sed -E "s/(.{1,${fragment_length}}).*$/\1/" \
| paste -s -d "${delimiter}")
sha=$(echo "${text}" | sha256sum | head -c "${sha_length}")
echo "${result}${delimiter}${sha}"
}
shorten "${@}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment