BioPerl
view release on metacpan or search on metacpan
maintenance/cvs2cl_by_file.pl view on Meta::CPAN
while (<MAPFILE>)
{
next if /^\s*#/; # Skip comment lines.
next if not /:/; # Skip lines without colons.
# It is now safe to split on ':'.
my ($username, $expansion) = split ':';
chomp $expansion;
$expansion =~ s/^'(.*)'$/$1/;
$expansion =~ s/^"(.*)"$/$1/;
# If it looks like the expansion has a real name already, then
# we toss the username we got from CVS log. Otherwise, keep
# it to use in combination with the email address.
if ($expansion =~ /^\s*<{0,1}\S+@.*/) {
# Also, add angle brackets if none present
if (! ($expansion =~ /<\S+@\S+>/)) {
$expansions{$username} = "$username <$expansion>";
}
else {
$expansions{$username} = "$username $expansion";
}
}
else {
$expansions{$username} = $expansion;
}
} # fi ($User_Map_File)
close (MAPFILE);
}
if (defined $User_Passwd_File)
{
if ( ! defined $Domain ) {
if ( -e MAILNAME ) {
chomp($Domain = slurp_file(MAILNAME));
} else {
MAILDOMAIN_CMD:
for ([qw(hostname -d)], 'dnsdomainname', 'domainname') {
my ($text, $exit, $sig, $core) = run_ext($_);
if ( $exit == 0 && $sig == 0 && $core == 0 ) {
chomp $text;
if ( length $text ) {
$Domain = $text;
last MAILDOMAIN_CMD;
}
}
}
}
}
die "No mail domain found\n"
unless defined $Domain;
open (MAPFILE, "<$User_Passwd_File")
or die ("Unable to open $User_Passwd_File ($!)");
while (<MAPFILE>)
{
# all lines are valid
my ($username, $pw, $uid, $gid, $gecos, $homedir, $shell) = split ':';
my $expansion = '';
($expansion) = split (',', $gecos)
if defined $gecos && length $gecos;
my $mailname = $Domain eq '' ? $username : "$username\@$Domain";
$expansions{$username} = "$expansion <$mailname>";
}
close (MAPFILE);
}
$self->{usermap} = \%expansions;
}
# -------------------------------------
sub read_file_path {
my ($self, $line) = @_;
my $path;
if ( $line =~ /^Working file: (.*)/ ) {
$path = $1;
} elsif ( defined $RCS_Root
and
$line =~ m|^RCS file: $RCS_Root[/\\](.*),v$| ) {
$path = $1;
$path =~ s!Attic/!!;
} else {
return;
}
if ( @Ignore_Files ) {
my $base;
($base, undef, undef) = fileparse($path);
my $xpath = $Case_Insensitive ? lc($path) : $path;
return
if grep $path =~ /$_/, @Ignore_Files;
}
$self->{filename} = $path;
return;
}
# -------------------------------------
sub read_symbolic_name {
my ($self, $line) = @_;
# All tag names are listed with whitespace in front in cvs log
# output; so if see non-whitespace, then we're done collecting.
if ( /^\S/ ) {
$self->{collecting_symbolic_names} = 0;
return;
} else {
# we're looking at a tag name, so parse & store it
# According to the Cederqvist manual, in node "Tags", tag names must start
# with an uppercase or lowercase letter and can contain uppercase and
# lowercase letters, digits, `-', and `_'. However, it's not our place to
( run in 0.863 second using v1.01-cache-2.11-cpan-5735350b133 )