Commit | Line | Data |
6e21c824 |
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 | |
6e21c824 |
30 | |
dffa8cde |
31 | use File::Find (); |
6e21c824 |
32 | |
28312d68 |
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; |
6e21c824 |
41 | |
dffa8cde |
42 | sub finddepth { |
43 | &File::Find::finddepth(\&wanted, @_); |
6e21c824 |
44 | } |
dffa8cde |
45 | |
6e21c824 |
46 | 1; |