writetree - sorted items and continue on error for more resiliency

This commit is contained in:
Douglas Clowes
2014-04-22 15:03:19 +10:00
parent ad50eaca6a
commit a43ca1cf94

View File

@ -15,36 +15,36 @@
} else { } else {
set line "$nam ([hinfo $tc_root]) = $val" set line "$nam ([hinfo $tc_root]) = $val"
} }
clientput "$space* $line"
} message ] { } message ] {
clientput "Error in writeNode/hinfo for $tc_root : $message" clientput "Error in writeNode/hinfo for $tc_root : $message"
return
} }
clientput "$space* $line"
if {"[string tolower "$do_props"]" == "-prop"} { if {"[string tolower "$do_props"]" == "-prop"} {
if [ catch { if [ catch {
set props [hlistprop $tc_root] set props [lsort [hlistprop $tc_root]]
} message ] {
clientput "Error in writeNode/hlistprop for $tc_root : $message"
return
}
#clientput "<<$props>>" #clientput "<<$props>>"
foreach prop $props { foreach prop $props {
if [ catch {
# guard against embedded spaces producing false properties
#clientput "prop: $prop" #clientput "prop: $prop"
set flds [split $prop "="] set flds [split $prop "="]
#clientput "flds: $flds" #clientput "flds: $flds"
if {[llength $flds] > 1} { if {[llength $flds] > 1} {
set fld0 [lindex $flds 0] set nam [lindex $flds 0]
#clientput "fld0: $fld0" if {[hpropexists $tc_root $nam]} {
if {[hpropexists $tc_root $fld0]} { set rst [hgetpropval $tc_root $nam]
set rst [hgetprop $tc_root $fld0] clientput "$space - $nam=$rst"
set nam [lindex [split [lindex $rst 0] "."] 1]
set rst [join [lrange [split $rst " "] 1 end] " "]
clientput "$space - $nam $rst"
} }
} }
} message ] {
clientput "Error in writeNode/hlistprop for $tc_root : $message"
} }
} }
foreach node [hlist $tc_root] { } message ] {
clientput "Error in writeNode/hlistprop for $tc_root : $message"
}
}
foreach node [lsort [hlist $tc_root]] {
::utility::writeNode $tc_root/$node "$do_props" [expr {$level + 1}] ::utility::writeNode $tc_root/$node "$do_props" [expr {$level + 1}]
} }
} message ] { } message ] {