1 |
dpavlin |
237 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
|
|
# list files under CVS control |
4 |
|
|
# $Id: lscvs,v 1.2 2002/12/13 15:42:42 kripke Exp $ |
5 |
|
|
|
6 |
|
|
sub dodir { |
7 |
|
|
my $dir = shift; |
8 |
|
|
print STDERR "$dir\n"; |
9 |
|
|
local *FH; |
10 |
|
|
open( FH, $dir.'CVS/Entries' ); |
11 |
|
|
while (<FH>) { |
12 |
|
|
# print STDERR $_; |
13 |
|
|
chomp; |
14 |
|
|
my ($type,$name,$version,$date,$opt,$tagdate) = split( /\// ); |
15 |
|
|
if ( '' eq $type ) { |
16 |
|
|
if ( $l ) { |
17 |
|
|
print join("\t",$dir.$name,$version,$date,$x),"\n"; |
18 |
|
|
} else { |
19 |
|
|
print $dir.$name,"\n"; |
20 |
|
|
} |
21 |
|
|
} elsif ( 'D' eq $type ) { |
22 |
|
|
dodir( $dir.$name.'/' ) if $r && $name; |
23 |
|
|
# "`D' on a line all by itself indicates that the program |
24 |
|
|
# which wrote the `Entries' file does record subdirectories" |
25 |
|
|
} else { |
26 |
|
|
print STDERR "uknown type '$type' in $dir ", |
27 |
|
|
join("\t",$name,$version,$date,$x),"\n"; |
28 |
|
|
} |
29 |
|
|
} |
30 |
|
|
close FH; |
31 |
|
|
} |
32 |
|
|
|
33 |
|
|
$l = $ARGV[0] =~ /l/; |
34 |
|
|
$r = $ARGV[0] =~ /r/; |
35 |
|
|
|
36 |
|
|
dodir; |