[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.13, Tue Jan 16 15:02:05 2007 UTC (10 years, 9 months ago) by chatz.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.12: +3 -0 lines

Minor fixes based on patch per mod exercise
Merge of master-melb:xfs-cmds:27941a by kenmcd.

  Added more names that were missing.

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',
	'chatz',	'David Chatterton',
	'donaldd',	'Donald Douwsma',
	'dgc',		'David Chinner',
	'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',
	'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',
	'hch',		'infradead.org',
	'kjamieson', 	'bycast.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;