From 891f946e86f8a0911f67983d52fccacc9f8ebbad Mon Sep 17 00:00:00 2001 From: Julio Capote Date: Wed, 13 Jul 2022 23:40:24 -0400 Subject: initial --- libexec/recit-commands | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 libexec/recit-commands (limited to 'libexec/recit-commands') 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 -- cgit v1.2.3