|
|
1.1 ! root 1: # ! 2: # forrecur.tcl -- ! 3: # ! 4: # Proc to execute code on every file in a recursive directory glob. ! 5: #------------------------------------------------------------------------------ ! 6: # Copyright 1992 Karl Lehenbauer and Mark Diekhans. ! 7: # ! 8: # Permission to use, copy, modify, and distribute this software and its ! 9: # documentation for any purpose and without fee is hereby granted, provided ! 10: # that the above copyright notice appear in all copies. Karl Lehenbauer and ! 11: # Mark Diekhans make no representations about the suitability of this ! 12: # software for any purpose. It is provided "as is" without express or ! 13: # implied warranty. ! 14: #------------------------------------------------------------------------------ ! 15: # $Id: forrecur.tcl,v 2.0 1992/10/16 04:52:00 markd Rel $ ! 16: #------------------------------------------------------------------------------ ! 17: # ! 18: ! 19: #@package: TclX-forrecur for_recursive_glob ! 20: ! 21: proc for_recursive_glob {var globlist code {depth 1}} { ! 22: upvar $depth $var myVar ! 23: foreach globpat $globlist { ! 24: foreach file [glob -nocomplain $globpat] { ! 25: if [file isdirectory $file] { ! 26: for_recursive_glob $var $file/* $code [expr {$depth + 1}] ! 27: } ! 28: set myVar $file ! 29: uplevel $depth $code ! 30: } ! 31: } ! 32: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.