File: [Development] / xfs-cmds / xfsmisc / Attic / developers.pl (download)
Revision 1.15, Tue May 8 06:12:27 2007 UTC (10 years, 5 months ago) by tes.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.14: +32 -4
lines
Fix up the scripts for the latest push to mainline. 2.6.22-rc1.
Merge of master-melb:xfs-cmds:28533a by kenmcd.
Add some developers.
Put a username mapping for misspellings/stuffups.
|
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',
'bobo', 'Bob Kierski',
'bnaujok', 'Barry Naujok',
'cattelan', 'Russell Cattelan',
'chatz', 'David Chatterton',
'donaldd', 'Donald Douwsma',
'dgc', 'David Chinner',
'ebiederm', 'Eric W. Biederman',
'gdc', 'David Chinner',
'felixb', 'Felix Blyakher',
'gnb', 'Greg Banks',
'gwehrman', 'Geoffrey Wehrman',
'kjamieson', 'Kevin Jamieson',
'lachlan', 'Lachlan McIlroy',
'hch', 'Christoph Hellwig',
'olaf', 'Olaf Weber',
'overby', 'Glen Overby',
'nathans', 'Nathan Scott',
'nscott', 'Nathan Scott',
'ralf', 'Ralf Baechle',
'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',
'torvalds', 'Linus Torvalds',
'michal.k.k.piotrowski', 'Michal Piotrowski',
'joe', 'Joe Perches',
'utako', 'Utako Kusaka',
'stewart', 'Stewart Smith',
);
# Foreign domains = non-sgi
# all other names are assume to be @sgi
my %domains = (
'cattelan', 'thebarn.com',
'sandeen', 'sandeen.net',
'nscott', 'aconex.com',
'stripathi', 'agami.com',
't-nagano', 'ah.jp.nec.com',
'torvalds', 'linux-foundation.org',
'michal.k.k.piotrowski', 'gmail.com',
'hch', 'infradead.org',
'kjamieson', 'bycast.com',
'ebiederm', 'xmission.com',
'ralf', 'linux-mips.org',
'joe', 'perches.com',
'utako', 'tnes.nec.co.jp',
'stewart', 'flamingspork.com',
);
#
# For any stuffups we do some mappings :)
#
my %baduser_maps = (
'kusaka', 'utako',
'doanldd', 'donaldd'
);
#
# lowercase it and look up any mappings
# to correct things
#
sub get_username {
my $username = lc(shift @_);
if (defined($baduser_maps{$username})) {
$baduser_maps{$username};
} else {
$username;
}
}
sub developer_check {
my $username = get_username(shift @_);
if (!defined($names{$username})) {
die "unknown developer: $username";
}
}
sub developer_name {
my $username = get_username(shift @_);
developer_check($username);
$names{$username};
}
sub developer_email {
my $username = get_username(shift @_);
my $domain = $domains{$username};
developer_check($username);
$username . "@" . ($domain ? $domain : 'sgi.com');
}
sub developer {
my $username = get_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/[<>]//g;
$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;