Commit | Line | Data |
378cc40b |
1 | #!/usr/bin/perl |
2 | |
79072805 |
3 | # $RCSfile: empty,v $$Revision: 4.1 $$Date: 92/08/07 17:20:50 $ |
378cc40b |
4 | |
5 | # This script empties a trashcan. |
6 | |
7 | $recursive = shift if $ARGV[0] eq '-r'; |
8 | |
9 | @ARGV = '.' if $#ARGV < 0; |
10 | |
11 | chop($pwd = `pwd`); |
12 | |
13 | dir: foreach $dir (@ARGV) { |
14 | unless (chdir $dir) { |
a687059c |
15 | print stderr "Can't find directory $dir: $!\n"; |
378cc40b |
16 | next dir; |
17 | } |
18 | if ($recursive) { |
19 | do cmd('find . -name .deleted -exec /bin/rm -rf {} ;'); |
20 | } |
21 | else { |
22 | if (-d '.deleted') { |
23 | do cmd('rm -rf .deleted'); |
24 | } |
25 | else { |
26 | if ($dir eq '.' && $pwd =~ m|/\.deleted$|) { |
27 | chdir '..'; |
28 | do cmd('rm -rf .deleted'); |
29 | } |
30 | else { |
31 | print stderr "No trashcan found in directory $dir\n"; |
32 | } |
33 | } |
34 | } |
35 | } |
36 | continue { |
37 | chdir $pwd; |
38 | } |
39 | |
40 | # force direct execution with no shell |
41 | |
42 | sub cmd { |
43 | system split(' ',join(' ',@_)); |
44 | } |
45 | |