Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | # Usage: |
2 | # require "finddepth.pl"; | |
3 | # | |
4 | # &finddepth('/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 | ||
31 | use File::Find (); | |
32 | ||
33 | *name = *File::Find::name; | |
34 | *prune = *File::Find::prune; | |
35 | *dir = *File::Find::dir; | |
36 | *topdir = *File::Find::topdir; | |
37 | *topdev = *File::Find::topdev; | |
38 | *topino = *File::Find::topino; | |
39 | *topmode = *File::Find::topmode; | |
40 | *topnlink = *File::Find::topnlink; | |
41 | ||
42 | sub finddepth { | |
43 | &File::Find::finddepth(\&wanted, @_); | |
44 | } | |
45 | ||
46 | 1; |