Skip to content

Instantly share code, notes, and snippets.

@vigo
Created September 4, 2022 10:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vigo/e209609dce68e125d3c3388cccf8e437 to your computer and use it in GitHub Desktop.
Save vigo/e209609dce68e125d3c3388cccf8e437 to your computer and use it in GitHub Desktop.
Pretty $PATH printer!
#!/usr/bin/env bash
#
# Created by Uğur "vigo" Özyılmazel on 2017-04-26.
# Copyright (c) 2017 VB YAZILIM. All rights reserved.
set -e
set -o pipefail
usage() {
cat <<EOF
usage: liste [-d <delimeter> | -h] INPUT
-d <delimeter> : Set custom delimeter. Accepts 1 single char.
default is :
try:
liste "\$PATH" | sort
liste "foo:bar:baz"
EOF
}
pretty_print(){
tr "${DEFAULT_DELIMETER}" "\n" <<< "${1}"
}
DEFAULT_DELIMETER=":"
SORT_OUTPUT="NO"
CMD_OPTIONS=":hd:"
while getopts $CMD_OPTIONS opt; do
case $opt in
h)
usage >&2
exit 0
;;
d)
if [[ ${#OPTARG} -gt 1 ]]; then
echo "Invalid delimeter char: Must be a single character" >&2
exit 1
fi
DEFAULT_DELIMETER="${OPTARG}"
shift $((OPTIND-1))
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
usage >&2
exit 0
;;
esac
done
if [[ ${#} -eq 1 ]]; then
pretty_print "${1}"
exit 0
fi
echo "Invalid usage..." >&2
usage >&2
exit 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment