diff options
Diffstat (limited to '')
-rwxr-xr-x | libexec/recit-commands | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libexec/recit-commands b/libexec/recit-commands new file mode 100755 index 0000000..edc18dd --- /dev/null +++ b/libexec/recit-commands @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Usage: recit commands +# Summary: List all recit commands +# Help: This command is mostly used for autocompletion in various shells, and for `recit help`. +# Also, this command helps find commands that are named the same as potentially builtin shell commands (which, cd, etc) + +set -e + +# Provide recit completions +if [ "$1" = "--complete" ]; then + echo --sh + echo --no-sh + exit +fi + +if [ "$1" = "--sh" ]; then + sh=1 + shift +elif [ "$1" = "--no-sh" ]; then + nosh=1 + shift +fi + +shopt -s nullglob + +{ for path in ${PATH//:/$'\n'}; do + for command in "${path}/recit-"*; do + command="${command##${path}/recit-}" + if [ -n "$sh" ]; then + if [ ${command:0:3} = "sh-" ]; then + echo ${command##sh-} + fi + elif [ -n "$nosh" ]; then + if [ ${command:0:3} != "sh-" ]; then + echo ${command##sh-} + fi + else + echo ${command##sh-} + fi + done + done +} | sort | uniq |