# Find all file extensions. function find_ext() { local types=($(find -type f | sed -e "s/.*\///" -e "s/^\.//" -e "/\./!d" -e "s/.*\.//")) echo "${types[@]}" | tr ' ' '\n' | sort -u } # Find all modules. function find_module() { ls "${BASH_MODULE_PATH}" | sed -e "s/.sh$//" } # Find all module functions. # Functions from all modules by default. # Usage: find_function [MODULE] function find_function() { local module="${1}" [[ "${module}" = "" ]] && module="*" cat "${BASH_MODULE_PATH}"/${module}.sh | grep "^function.*()" | sed -e "s/^function //" -e "s/().*//" } # Autocomplete with module. _find_module() { _autocomplete_first $(find_module) } complete -F _find_module find_function