Files
sics/site_ansto/instrument/util/write_tree.tcl
Douglas Clowes 8fd30089a1 ensure namespace ::utility exists
r3522 | dcl | 2012-04-02 12:58:59 +1000 (Mon, 02 Apr 2012) | 1 line
2012-11-15 17:26:39 +11:00

43 lines
1.3 KiB
Tcl

namespace eval ::utility {}
proc ::utility::writeNode {tc_root { do_props 0 } { level 0 }} {
set space [string repeat " " $level]
set val [hval $tc_root]
set nam [lindex [split $tc_root "/"] end]
if {"$val" == ""} {
set line "$nam ([hinfo $tc_root])"
} else {
set line "$nam ([hinfo $tc_root]) = $val"
}
clientput "$space* $line"
if {"[string tolower "$do_props"]" == "-prop"} {
set props [hlistprop $tc_root]
#clientput "<<$props>>"
foreach prop $props {
#clientput "prop: $prop"
set flds [split $prop "="]
#clientput "flds: $flds"
if {[llength $flds] > 1} {
set fld0 [lindex $flds 0]
#clientput "fld0: $fld0"
if {[hpropexists $tc_root $fld0]} {
set rst [hgetprop $tc_root $fld0]
set nam [lindex [split [lindex $rst 0] "."] 1]
set rst [join [lrange [split $rst " "] 1 end] " "]
clientput "$space - $nam $rst"
}
}
}
}
foreach node [hlist $tc_root] {
::utility::writeNode $tc_root/$node "$do_props" [expr {$level + 1}]
}
}
proc writeTree {tc_root {do_props 0}} {
clientput "$tc_root"
::utility::writeNode $tc_root $do_props 1
return "Done"
}
publish writeTree user