Posted to tcl by dkf at Tue Dec 04 15:12:11 GMT 2007view raw

  1. proc get_all_pkgs_recursive {pkg_name path {pkg_list_recursive {}} {recursion_cnt 0}} {
  2. incr recursion_cnt
  3. if {$recursion_cnt > 2} {
  4. debug "Max recursion level reached. Skipping directory $path."
  5. return
  6. }
  7. if {$pkg_list_recursive ne ""} {
  8. upvar 1 $pkg_list_recursive pkg_list
  9. } else {
  10. set pkg_list {}
  11. }
  12.  
  13. ...
  14.  
  15. if {$type == "d"} {
  16. get_all_pkgs_recursive $pkg_name $path/$file pkg_list $recursion_cnt
  17. } else {
  18. lappend pkg_list $path/$file
  19. }
  20.  
  21. ...
  22.  
  23. return $pkg_list
  24. }