## -*- tcl -*-
# # ## ### ##### ######## ############# #####################
## CMDR - Util - General utilities
# @@ Meta Begin
# Package cmdr::util 0
# Meta author {Andreas Kupries}
# Meta location https://core.tcl.tk/akupries/cmdr
# Meta platform tcl
# Meta summary Internal. General utilities.
# Meta description Internal. General utilities.
# Meta subject {command line}
# Meta require {Tcl 8.5-}
# Meta require textutil::adjust
# Meta require debug
# Meta require debug::caller
# @@ Meta End
# # ## ### ##### ######## ############# #####################
## Requisites
package require Tcl 8.5
package require debug
package require debug::caller
# # ## ### ##### ######## ############# #####################
## Definition
namespace eval ::cmdr {
namespace export util
namespace ensemble create
}
namespace eval ::cmdr::util {
namespace export padr dictsort
namespace ensemble create
}
# # ## ### ##### ######## ############# #####################
debug define cmdr/util
debug level cmdr/util
debug prefix cmdr/util {[debug caller] | }
# # ## ### ##### ######## ############# #####################
proc ::cmdr::util::padr {list} {
debug.cmdr/util {}
if {[llength $list] <= 1} {
return $list
}
set maxl 0
foreach str $list {
set l [string length $str]
if {$l <= $maxl} continue
set maxl $l
}
set res {}
foreach str $list { lappend res [format "%-*s" $maxl $str] }
return $res
}
proc ::cmdr::util::dictsort {dict} {
set r {}
foreach k [lsort -dict [dict keys $dict]] {
lappend r $k [dict get $dict $k]
}
return $r
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide cmdr::util 1.1