ref: e77406f6fea641346fa8552b974d315398860b5e
iron/libexec/iron/iron-commands
#!/usr/bin/env bash
# Usage: iron commands
# Summary: List all iron commands
# Help: This command is mostly used for autocompletion in various shells, and for `iron help`.
# Also, this command helps find commands that are named the same as potentially builtin shell commands (which, cd, etc)
set -e
# Provide iron 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}/iron-"*; do
command="${command##*iron-}"
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