gsu_short_msg "# Usage: $_gsu_self command [options]"
}
-# Each line matching this is recognized as a subcommand. The name of the may be
-# given as $1. In any case the subcommand is the first subexpression.
+# Return an extended regular expression to match against $0.
+#
+# When called without argument, the expression matches all lines which define a
+# subcommand.
+#
+# If an argument is given, the returned expression matches only the subcommand
+# passed as $1. This is useful to tell if a string is a valid subcommand.
+#
+# Regardless of whether an argument is given, the returned expression contains
+# exactly one parenthesized subexpression for matching the command name.
_gsu_get_command_regex()
{
local cmd="${1:-[-a-zA-Z_0-9]+}"
result="$(($n - 1))"
}
+# Entry point for all gsu-based scripts.
+#
+# The startup part of the application script should source this file to load
+# the functions defined here, and then call gsu(). Functions starting with com_
+# are automatically recognized as subcommands.
+#
+# Minimal example:
+#
+# com_hello()
+# {
+# echo 'hello world'
+# }
+# gsu_dir=${gsu_dir:-/system/location/where/gsu/is/installed}
+# . $gsu_dir/subcommand || exit 1
+# gsu "$@"
gsu()
{
local i