shell.tcl

Go to the documentation of this file.
00001 /*  -*- tcl -*-*/
00002 /*  (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>*/
00003 /** 
00004  * ###
00005  */
00006 
00007 getpackage fileutil fileutil/fileutil.tcl
00008 
00009 package require  sak::test
00010 package require  sak::registry
00011 namespace ::sak::test::shell {}
00012 
00013 /*  ###*/
00014 
00015 ret  ::sak::test::shell (type argv) {
00016     if {![llength $argv]} {Usage Sub command missing}
00017 
00018     set cmd  [lindex $argv 0]
00019     set argv [lrange $argv 1 end]
00020 
00021     switch -exact -- $cmd {
00022     add {
00023         sak::test::shell::add $argv
00024     }
00025     delete {
00026         sak::test::shell::delete $argv
00027     }
00028     default {
00029         sak::test::usage Unknown command "\"shell $cmd\""
00030     }
00031     }
00032     return
00033 }
00034 
00035 ret  ::sak::test::shell::list () {
00036     return [sak::registry::local \
00037         get||default Tests Shells {}]
00038 }
00039 
00040 ret  ::sak::test::shell::add (type paths) {
00041     foreach p $paths {
00042     if {![fileutil::test $p efrx msg "Shell"]} {
00043         sak::test::usage $msg
00044     }
00045     }
00046 
00047     set shells [sak::registry::local \
00048         get||default Tests Shells {}]
00049     array set known {}
00050     foreach sh $shells {set known($sh) .}
00051 
00052     set changed 0
00053     foreach p $paths {
00054     if {[info exists known($p)]} continue
00055     lappend shells $p
00056     set changed 1
00057     }
00058 
00059     if {$changed} {
00060     sak::registry::local \
00061         set Tests Shells [lsort -dict $shells]
00062     }
00063     return
00064 }
00065 
00066 ret  ::sak::test::shell::delete (type paths) {
00067     set shells [sak::registry::local \
00068         get||default Tests Shells {}]
00069     array set known {}
00070     foreach sh $shells {set known($sh) .}
00071 
00072     set changed 0
00073     foreach p $paths {
00074     if {![info exists known($p)]} continue
00075     unset known($p)
00076     set changed 1
00077     }
00078 
00079     if {$changed} {
00080     sak::registry::local \
00081         set Tests Shells [lsort -dict \
00082         [array names known]]
00083     }
00084     return
00085 }
00086 
00087 /*  ###*/
00088 
00089 namespace ::sak::test::shell {
00090 }
00091 
00092 /** 
00093  * ###
00094  */
00095 
00096 package provide sak::test::shell 1.0
00097 

Generated on 21 Sep 2010 for Gui by  doxygen 1.6.1