Files

49 lines
1.4 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Metadata and help utilities for scripts
# Provides simple helpers to print script usage and header information.
# Print a standardized usage/help message using optional variables:
# SCRIPT_NAME, SCRIPT_DESC, SCRIPT_USAGE, SCRIPT_OPTIONS, SCRIPT_ENVVARS, SCRIPT_REQUIREMENTS, SCRIPT_EXAMPLE
script_usage() {
local name="${SCRIPT_NAME:-${0##*/}}"
echo "${name}"
[ -n "${SCRIPT_DESC:-}" ] && echo "Description: ${SCRIPT_DESC}"
if [ -n "${SCRIPT_USAGE:-}" ]; then
echo "Usage: ${SCRIPT_USAGE}"
else
echo "Usage: ${name} [options]"
fi
if [ -n "${SCRIPT_OPTIONS:-}" ]; then
echo
echo "Options:"
# shellcheck disable=SC2001
echo "${SCRIPT_OPTIONS}" | sed 's/^/ /'
fi
if [ -n "${SCRIPT_ENVVARS:-}" ]; then
echo
echo "Environment:"
# shellcheck disable=SC2001
echo "${SCRIPT_ENVVARS}" | sed 's/^/ /'
fi
if [ -n "${SCRIPT_REQUIREMENTS:-}" ]; then
echo
echo "Requires: ${SCRIPT_REQUIREMENTS}"
fi
if [ -n "${SCRIPT_EXAMPLE:-}" ]; then
echo
echo "Example:"
# shellcheck disable=SC2001
echo "${SCRIPT_EXAMPLE}" | sed 's/^/ /'
fi
}
# Handle -h/--help; call after sourcing init and setting metadata vars
handle_help() {
case "${1:-}" in
-h|--help)
script_usage
exit 0
;;
esac
}