1# Usage:
2#	require "find.pl";
3#
4#	&find('/foo','/bar');
5#
6#	sub wanted { ... }
7#		where wanted does whatever you want.  $dir contains the
8#		current directory name, and $_ the current filename within
9#		that directory.  $name contains "$dir/$_".  You are cd'ed
10#		to $dir when the function is called.  The function may
11#		set $prune to prune the tree.
12#
13# This library is primarily for find2perl, which, when fed
14#
15#   find2perl / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
16#
17# spits out something like this
18#
19#	sub wanted {
20#	    /^\.nfs.*$/ &&
21#	    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
22#	    int(-M _) > 7 &&
23#	    unlink($_)
24#	    ||
25#	    ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) &&
26#	    $dev < 0 &&
27#	    ($prune = 1);
28#	}
29#
30# Set the variable $dont_use_nlink if you're using AFS, since AFS cheats.
31
32use File::Find ();
33
34*name		= *File::Find::name;
35*prune		= *File::Find::prune;
36*dir		= *File::Find::dir;
37*topdir		= *File::Find::topdir;
38*topdev		= *File::Find::topdev;
39*topino		= *File::Find::topino;
40*topmode	= *File::Find::topmode;
41*topnlink	= *File::Find::topnlink;
42
43sub find {
44    &File::Find::find(\&wanted, @_);
45}
46
471;
48