#!/bin/bash -euE . libremessages stem=pbs list_commands() { find ${PATH//:/ } -type f -executable -name "$stem-*" \ -printf '%f\n' 2>/dev/null | sed "s/^${stem}-//;/--/d" | sort } master_usage() { echo "Usage: ${stem} COMMAND [OPTIONS]" echo echo "Commands:" list_commands | sed 's/^/ /' } help_usage() { echo "Usage: ${stem} help [OPTIONS] COMMAND" echo "Shows the manual page for a command" echo '' echo 'Options:' echo ' -h Show this message' } main() { if [[ $# < 1 ]]; then master_usage else if in_array '-h' "$@"; then help_usage else man "$stem-$1" fi fi } main "$@"