diff options
Diffstat (limited to 'contrib/perl5/lib/finddepth.pl')
| -rw-r--r-- | contrib/perl5/lib/finddepth.pl | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/contrib/perl5/lib/finddepth.pl b/contrib/perl5/lib/finddepth.pl new file mode 100644 index 0000000000000..bfa44bb1bc9d5 --- /dev/null +++ b/contrib/perl5/lib/finddepth.pl @@ -0,0 +1,46 @@ +# Usage: +#	require "finddepth.pl"; +# +#	&finddepth('/foo','/bar'); +# +#	sub wanted { ... } +#		where wanted does whatever you want.  $dir contains the +#		current directory name, and $_ the current filename within +#		that directory.  $name contains "$dir/$_".  You are cd'ed +#		to $dir when the function is called.  The function may +#		set $prune to prune the tree. +# +# This library is primarily for find2perl, which, when fed +# +#   find2perl / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune +# +# spits out something like this +# +#	sub wanted { +#	    /^\.nfs.*$/ && +#	    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && +#	    int(-M _) > 7 && +#	    unlink($_) +#	    || +#	    ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) && +#	    $dev < 0 && +#	    ($prune = 1); +#	} + + +use File::Find (); + +*name		= *File::Find::name; +*prune		= *File::Find::prune; +*dir		= *File::Find::dir; +*topdir		= *File::Find::topdir; +*topdev		= *File::Find::topdev; +*topino		= *File::Find::topino; +*topmode	= *File::Find::topmode; +*topnlink	= *File::Find::topnlink; + +sub finddepth { +    &File::Find::finddepth(\&wanted, @_); +} + +1; | 
