33 lines
694 B
Plaintext
33 lines
694 B
Plaintext
|
|
#!/usr/bin/env bash
|
||
|
|
function show() {
|
||
|
|
if [[ "$#" -ne 1 ]]; then
|
||
|
|
echo "usage: show <prog>" >&2
|
||
|
|
return 1
|
||
|
|
fi
|
||
|
|
case "$(type -t "$1")" in
|
||
|
|
alias)
|
||
|
|
alias "$1" | bat -pl sh ;;
|
||
|
|
keyword|builtin)
|
||
|
|
help "$1" ;;
|
||
|
|
function)
|
||
|
|
declare -f "$1" | bat -l sh ;;
|
||
|
|
file)
|
||
|
|
local path="$(which "$1")"
|
||
|
|
local real="$(realpath "$path")"
|
||
|
|
[[ "$path" != "$real" ]] && echo "$path"
|
||
|
|
bat "$real" ;;
|
||
|
|
"")
|
||
|
|
echo "$1 doesn't exist" ;;
|
||
|
|
esac
|
||
|
|
}
|
||
|
|
function goto() {
|
||
|
|
if [[ "$#" -ne 1 ]]; then
|
||
|
|
echo "usage: goto <prog>" >&2
|
||
|
|
return 1
|
||
|
|
fi
|
||
|
|
local path="$(which "$1")"
|
||
|
|
[[ -z "$path" ]] && return 2
|
||
|
|
local real="$(realpath "$path")"
|
||
|
|
cd "${real%/*}"
|
||
|
|
}
|