File: [Development] / xfs-cmds / xfsmisc / Attic / developers.pl (download)
Revision 1.11, Mon Nov 13 14:45:13 2006 UTC (10 years, 11 months ago) by tes.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.10: +56 -0
lines
some changes to support multiple reviewers
Merge of master-melb:xfs-cmds:27430a by kenmcd.
Add some more multiple reviewer support and move it to developers.pl to share.
|
package developers;
use strict;
# Username to real name mapping for people who are to blame^W^W
# checking XFS mods into the xfs-kern/xfs-cmds/dmapi ptools trees.
my %names = (
'arunr', 'Arun Ramakrishnan',
'alkirkco', 'Mandy Kirkconnell',
'chatz', 'David Chatterton',
'dgc', 'David Chinner',
'gdc', 'David Chinner',
'felixb', 'Felix Blyakher',
'gnb', 'Greg Banks',
'gwehrman', 'Geoffrey Wehrman',
'lachlan', 'Lachlan McIlroy',
'olaf', 'Olaf Weber',
'nathans', 'Nathan Scott',
'nscott', 'Nathan Scott',
'tes', 'Tim Shimmin',
'wkendall', 'Bill Kendall',
'yingping', 'Yingping Lu',
'vapo', 'Vlad Apostolov',
'sandeen', 'Eric Sandeen',
'sjv', 'Sam Vaughan',
'stripathi', 'Shailendra Tripathi',
't-nagano', 'Takenori Nagano',
'michal.k.k.piotrowski', 'Michal Piotrowski',
);
# Foreign domains = non-sgi
# all other names are assume to be @sgi
my %domains = (
'sandeen', 'sandeen.net',
'nscott', 'aconex.com',
'stripathi', 'agami.com',
't-nagano', 'ah.jp.nec.com',
'michal.k.k.piotrowski', 'gmail.com',
);
sub developer_check {
my $username = shift @_;
if (!defined($names{$username})) {
die "unknown developer: $username";
}
}
sub developer_name {
my $username = shift @_;
developer_check($username);
$names{$username};
}
sub developer_email {
my $username = shift @_;
my $domain = $domains{$username};
developer_check($username);
$username . "@" . ($domain ? $domain : 'sgi.com');
}
sub developer {
my $username = shift @_;
my $email = developer_email($username);
$names{$username} . ' <' . $email . '>';
}
#
# Usage:
# &developers::reviewers($treedir, $modid);
#
sub reviewers() {
my $treedir = shift @_;
my $modid = shift @_;
my $rev;
my @revs;
my $rev_line;
my $revsign;
my %reviewers;
my $cwd = $ENV{'PWD'};
chdir $treedir;
open MODINFO, "p_modinfo -b -H Inspected $modid |" or die "modinfo";
while ($rev_line = <MODINFO>) {
# space or comma delimited per line
chomp($rev_line);
@revs = split(/[ ,]+/, $rev_line);
foreach $rev (@revs) {
$rev =~ s/([-.0-9a-z_A-Z]+).*$/$1/;
$revsign = &developers::developer($rev);
$reviewers{$rev} = $revsign;
}
}
close MODINFO;
chdir $cwd;
%reviewers;
}
#
# Usage:
# &developers::author($treedir, $modid);
#
sub author()
{
my $treedir = shift @_;
my $modid = shift @_;
my $author;
my $cwd = $ENV{'PWD'};
chdir $treedir;
open MODINFO, "p_modinfo -b -H Author $modid |" or die "modinfo";
$author = <MODINFO>;
close MODINFO;
chdir $cwd;
# extract the username
chomp($author);
$author =~ s/([-.0-9a-z_A-Z]+).*$/$1/;
$author;
}
1;