home *** CD-ROM | disk | FTP | other *** search
- #!/bin/csh -f
- #
- # test.csh - C-shell script to test out the parseargs command!
- #
- set NAME="`basename $0`"
-
- setenv ARGUMENTS "\
- '?', ARGHIDDEN, argUsage, NULL, 'Help {print usage and exit}', \
- 'S', ARGVALOPT, argStr, string, 'STRing {optional string arg}', \
- 'g', ARGLIST, argStr, groups, 'newsGROUPS {groups to test}', \
- 'r', ARGOPT, argInt, count, 'REPcount {# to repeat each group}', \
- 'd', ARGOPT, argStr, dirname, 'DIRectory {working directory}', \
- 'x', ARGOPT, argBool, xflag, 'Xflag {turn on X-mode}', \
- 'y', ARGOPT, argUBool, yflag, 'Yflag {turn off Y-mode}', \
- 's', ARGOPT, argChar, sepch, 'SEPchar {field separator}', \
- 'f', ARGLIST, argStr, files, 'files {files to process}', \
- 'n', ARGREQ|ARGPOS, argStr, name, 'name {name to use}', \
- ' ', ARGLIST, argStr, argv, 'argv {any remaining arguments}', \
- ENDOFARGS \
- "
- ## set defaults ##
- set groups='mygroup' ## default group used by everyone
- set count='1' ## only do once unless otherwise specified
- set dirname='.' ## default to current directory
- set xflag='' ## default xflag is false
- set yflag='TRUE' ## default yflag is true
- set sepch=',' ## default separator is a comma
- set files=()
-
- ## parse command-line ##
- parseargs -s csh -e ARGUMENTS -u -- "$NAME" $argv:q > /tmp/tmp$$
- if ( $status != 0 ) then ## improper syntax (or just wanted usage)
- rm -f /tmp/tmp$$
- exit 2
- endif
-
- ## evaluate output from parseargs & remove temporary file
- source /tmp/tmp$$
- rm -f /tmp/tmp$$
-
- ## echo arguments ##
- echo "ARGUMENTS:"
- echo "=========="
- echo Groups=$groups:q
- echo Count=$count:q
- echo Directory=$dirname:q
- echo XFlag=$xflag:q
- echo YFlag=$yflag:q
- echo SepChar=$sepch:q
- echo Name=$name:q
- echo Files=$files:q
- if ( $?string_flag ) then
- if ( ! $?string ) set string="\!string arg ommited on cmd-line\!"
- else
- set string="default string"
- endif
- echo String=$string:q
- echo New Positional Parameters=$argv:q
-
- ## print usage ##
- parseargs -e ARGUMENTS -U "$NAME"
-