[BACK]Return to developers.pl CVS log [TXT][DIR] Up to [Development] / xfs-cmds / xfsmisc

File: [Development] / xfs-cmds / xfsmisc / Attic / developers.pl (download)

Revision 1.16, Mon May 28 15:51:13 2007 UTC (10 years, 4 months ago) by tes.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.15: +3 -1 lines

update push to git stuff
Merge of master-melb:xfs-cmds:28714a by kenmcd.

  add akpm

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 = (
	'akpm',		'Andrew Morton',
	'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 = (
	'akpm',		'linux-foundation.org',
	'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;