[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
AutoOpts may be used with shell scripts by automatically creating a complete program that will process command line options and pass back the results to the invoking shell by issuing shell variable assignment commands. It may also be used to generate portable shell code that can be inserted into your script.
The functionality of these features, of course, is somewhat constrained compared with the normal program facilities. Specifically, you cannot invoke callout procedures with either of these methods. Additionally, if you generate a shell script:
Both of these methods are enabled by running AutoGen on the definitions file with the additional global attribute:
test-main [ = proc-to-call ] ; |
If you do not supply a proc-to-call
, it will default
to putBourneShell
. That will produce a program that
will process the options and generate shell text for the
invoking shell to interpret. If you supply the name,
putShellParse
, then you will have a program that
will generate a shell script that can parse the options.
If you supply a different procedure name, you will have to
provide that routine and it may do whatever you like.
In summary, you will need to issue approximately the following two commands to have a working program:
autogen -L <opt-template-dir> program.def cc -o progopts -L <opt-lib-dir> -I <opt-include-dir> \ -DTEST_program_OPTS program.c -lopts |
The resulting program can be used within your shell script as follows:
eval `./progopts $@` if [ -z "${OPTION_CT}" ] ; then exit 1 ; fi shift ${OPTION_CT} |
If you had used test-main = putShellParse
instead, then you can,
at this point, merely run the program and it will write the parsing
script to standard out. You may also provide this program with command
line options to specify the shell script file to create or edit, and you
may specify the shell program to use on the first shell script line.
That program's usage text would look something like this:
genshellopt - Generate Shell Option Processing Script - Ver. 1 USAGE: genshellopt [ -<flag> [<val>] | --<name>[{=| }<val>] ]... Flg Arg Option-Name Description -o Str script Output Script File -s Str shell Shell name (follows "#!" magic) - disabled as --no-shell - enabled by default -v opt version Output version information and exit -? no help Display usage information and exit -! no more-help Extended usage information passed thru pager Options are specified by doubled hyphens and their name or by a single hyphen and the flag character. Note that `shell' is only useful if the output file does not already exist. If it does, then the shell name and optional first argument will be extracted from the script file. If the script file already exists and contains Automated Option Processing text, the second line of the file through the ending tag will be replaced by the newly generated text. The first `#!' line will be regenerated. please send bug reports to: [email protected] = = = = = = = = This incarnation of genshell will produce a shell script to parse the options for getdefs: getdefs - AutoGen Definition Extraction Tool - Ver. 1.4 USAGE: getdefs [ <option-name>[{=| }<val>] ]... Arg Option-Name Description Str defs-to-get Regexp to look for after the "/*=" opt ordering Alphabetize or use named file Num first-index The first index to apply to groups Str input Input file to search for defs Str subblock subblock definition names Str listattr attribute with list of values opt filelist Insert source file names into defs Str assign Global assignments Str common-assign Assignments common to all blocks Str copy File(s) to copy into definitions opt srcfile Insert source file name into each def opt linenum Insert source line number into each def Str output Output file to open opt autogen Invoke AutoGen with defs Str template Template Name Str agarg AutoGen Argument Str base-name Base name for output file(s) opt version Output version information and exit no help Display usage information and exit no more-help Extended usage information passed thru pager opt save-opts Save the option state to an rc file Str load-opts Load options from an rc file All arguments are named options. If no ``input'' argument is provided or is set to simply "-", and if ``stdin'' is not a ``tty'', then the list of input files will be read from ``stdin''. please send bug reports to: [email protected] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |