]> git.tuebingen.mpg.de Git - gsu.git/blobdiff - misc/gsu/subcommand
gsu: Document gsu().
[gsu.git] / misc / gsu / subcommand
index f1685aa1e416af8bf3ddb3d78a2a93ec1f9bacaa..6b5df0a37c2a676c7c86d74c5a07371fddd2e1bf 100644 (file)
@@ -11,8 +11,16 @@ _gsu_usage()
        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]+}"
@@ -505,6 +513,21 @@ gsu_get_unnamed_arg_num()
        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