[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.12, Mon Jan 15 14:54:22 2007 UTC (10 years, 9 months ago) by chatz.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.11: +5 -0 lines

Add tools to assist with generating patch per mods for SuSE.
Merge of master-melb:xfs-cmds:27923a by kenmcd.

  Added missing developers.

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',
	'dgc',		'David Chinner',
	'gdc',		'David Chinner',
	'felixb',	'Felix Blyakher',
	'gnb',		'Greg Banks',
	'gwehrman',	'Geoffrey Wehrman',
	'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',
);

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;