diff options
Diffstat (limited to 'tcllib/support/devel/sak/validate/cmd.tcl')
-rw-r--r-- | tcllib/support/devel/sak/validate/cmd.tcl | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tcllib/support/devel/sak/validate/cmd.tcl b/tcllib/support/devel/sak/validate/cmd.tcl new file mode 100644 index 0000000..ca2ddc9 --- /dev/null +++ b/tcllib/support/devel/sak/validate/cmd.tcl @@ -0,0 +1,70 @@ +# -*- tcl -*- +# Implementation of 'validate'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +package require sak::util +package require sak::validate + +set raw 0 +set log 0 +set stem {} +set tclv {} + +if {[llength $argv]} { + # First argument may be a command. + set cmd [lindex $argv 0] + if {![catch { + package require sak::validate::$cmd + } msg]} { + set argv [lrange $argv 1 end] + } else { + set cmd all + } + + # Now process any possible options (-v, -l, --log). + + while {[string match -* [set opt [lindex $argv 0]]]} { + switch -exact -- $opt { + -v { + set raw 1 + set argv [lrange $argv 1 end] + } + -l - --log { + set log 1 + set stem [lindex $argv 1] + set argv [lrange $argv 2 end] + } + -t - --tcl { + set tclv [lindex $argv 1] + set argv [lrange $argv 2 end] + } + default { + sak::validate::usage Unknown option "\"$opt\"" + } + } + } +} else { + set cmd all +} + +# At last now handle all remaining arguments as module specifications. +if {![sak::util::checkModules argv]} return + +if {$log} { set raw 0 } + +array set mode { + 00 short + 01 log + 10 verbose + 11 _impossible_ +} + +sak::validate::$cmd $argv $mode($raw$log) $stem $tclv + +## +# ### |