nix-conf/user/config/bash/show
2024-12-11 04:17:37 -06:00

33 lines
694 B
Bash

#!/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%/*}"
}