File: check-year-author.pl

package info (click to toggle)
plplot 5.3.1-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 26,248 kB
  • ctags: 11,687
  • sloc: ansic: 86,045; xml: 17,249; sh: 12,400; tcl: 8,113; cpp: 6,824; perl: 4,383; python: 3,915; makefile: 2,899; java: 2,788; fortran: 290; sed: 5; awk: 1
file content (34 lines) | stat: -rwxr-xr-x 862 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl -w

# Get current year, if not given as argument
$year = (defined $ARGV[0]) ? $ARGV[0] : `date '+%Y'`;
chomp $year;

# CVS root
$cvsroot = "/cvsroot/plplot/plplot";

# Get list of CVS files
@files = ();
print STDERR "Getting CVS files list...";
open (STATUS, "cvs status 2>/dev/null|")
  or die "Cannot run cvs status.  Au revoir.";
while (<STATUS>) {
  push (@files, $1)
    if (m{Repository revision:[^/]+$cvsroot/(.*)(?=,v)});
}
print STDERR " done\n";

print STDERR "Getting cvs logs...\n";

for $file (@files) {
  my %names;
  open (LOG, "cvs log $file 2>/dev/null |")
    or die "Cannot run cvs log for $file.  Au revoir.";
  while (<LOG>) {
    $names{$1} = 1
      if (m{^date: $year/.*author: (.*)(?=;  state)});
  }
  my @authors = sort keys %names;
  print STDOUT "$file: " . join (", ", @authors) . "\n"
    if scalar @authors > 0;
}