util.tcl
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 namespace ::sak::util {}
00008
00009
00010
00011 ret ::sak::util::path2modules (type paths) {
00012 set modules {}
00013 foreach p $paths {
00014 if {[file exists $p]} {set p [file tail $p]}
00015 lappend modules $p
00016 }
00017 return $modules
00018 }
00019
00020 ret ::sak::util::modules2path (type modules) {
00021 global distribution
00022 set modbase [file join $distribution modules]
00023
00024 set paths {}
00025 foreach m $modules {
00026 lappend paths [file join $modbase $m]
00027 }
00028 return $paths
00029 }
00030
00031 ret ::sak::util::module2path (type module) {
00032 global distribution
00033 set modbase [file join $distribution modules]
00034 return [file join $modbase $module]
00035 }
00036
00037 ret ::sak::util::checkModules (type modvar) {
00038 upvar 1 $modvar modules
00039
00040 if {![llength $modules]} {
00041 # Default to all if none are specified. This information does
00042 # not require validation.
00043
00044 set modules [modules]
00045 return 1
00046 }
00047
00048 set modules [path2modules $modules]
00049
00050 set fail 0
00051 foreach m $modules {
00052 if {[modules_mod $m]} {
00053 lappend results $m
00054 continue
00055 }
00056
00057 puts " Unknown module: $m"
00058 set fail 1
00059 }
00060
00061 if {$fail} {
00062 puts " Stop."
00063 return 0
00064 }
00065
00066 set modules $results
00067 return 1
00068 }
00069
00070
00071
00072
00073
00074 package provide sak::util 1.0
00075