Gentoo Archives: gentoo-commits

From: "Christian Ruppert (idl0r)" <idl0r@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoolkit r561 - trunk/src/echangelog
Date: Thu, 30 Apr 2009 21:30:54
Message-Id: E1LzdqF-0006kV-IE@stork.gentoo.org
1 Author: idl0r
2 Date: 2009-04-30 21:30:51 +0000 (Thu, 30 Apr 2009)
3 New Revision: 561
4
5 Modified:
6 trunk/src/echangelog/echangelog
7 Log:
8 Added support for project-wide variables as suggested in bug 213374. Improved environment handling.
9
10 Modified: trunk/src/echangelog/echangelog
11 ===================================================================
12 --- trunk/src/echangelog/echangelog 2009-04-30 21:23:00 UTC (rev 560)
13 +++ trunk/src/echangelog/echangelog 2009-04-30 21:30:51 UTC (rev 561)
14 @@ -76,6 +76,19 @@
15 exit 0;
16 }
17
18 +sub getenv($) {
19 + my $key = shift;
20 +
21 + # Ensure our variable exist
22 + if ( defined($ENV{$key}) ) {
23 + # Ensure we don't get empty variables
24 + if ( length($ENV{$key}) > 0 ) {
25 + return $ENV{$key};
26 + }
27 + }
28 + return undef;
29 +}
30 +
31 GetOptions(
32 'help' => \$opt_help,
33 'strict' => \$opt_strict,
34 @@ -450,10 +463,8 @@
35 if ($ARGV[0]) {
36 $input = "@ARGV";
37 } else {
38 - # Testing for defined() allows ECHANGELOG_EDITOR='' to cancel EDITOR
39 - $editor = defined($ENV{'ECHANGELOG_EDITOR'}) ? $ENV{'ECHANGELOG_EDITOR'} :
40 - $ENV{'EDITOR'} || undef;
41 -
42 + $editor = getenv('ECHANGELOG_EDITOR') ? getenv('ECHANGELOG_EDITOR') : getenv('EDITOR') || undef;
43 +
44 if ($editor) {
45 system("$editor ChangeLog.new");
46
47 @@ -474,7 +485,7 @@
48 undef $editor;
49 }
50
51 - unlink 'ChangeLog.new';
52 + unlink('ChangeLog.new') if -f 'ChangeLog.new';
53 }
54 }
55
56 @@ -492,10 +503,25 @@
57 $input = Text::Wrap::fill(' ', ' ', $input);
58
59 # Prepend the user info to the input
60 -unless ($user = $ENV{'ECHANGELOG_USER'}) {
61 +# Changes related to bug 213374;
62 +# This sequence should be right:
63 +# 1. GENTOO_COMMITTER_NAME && GENTOO_COMMITTER_EMAIL
64 +# 2. GENTOO_AUTHOR_NAME && GENTOO_AUTHOR_EMAIL
65 +# 3. ECHANGELOG_USER (fallback/obsolete?)
66 +# 4. getpwuid()..
67 +if ( getenv("GENTOO_COMMITTER_NAME") && getenv("GENTOO_COMMITTER_EMAIL") ) {
68 + $user = sprintf("%s <%s>", getenv("GENTOO_COMMITTER_NAME"), getenv("GENTOO_COMMITTER_EMAIL"));
69 +}
70 +elsif ( getenv("GENTOO_AUTHOR_NAME") && getenv("GENTOO_AUTHOR_EMAIL") ) {
71 + $user = sprintf("%s <%s>", getenv("GENTOO_AUTHOR_NAME"), getenv("GENTOO_AUTHOR_EMAIL"));
72 +}
73 +elsif ( getenv("ECHANGELOG_USER") ) {
74 + $user = getenv("ECHANGELOG_USER");
75 +}
76 +else {
77 my ($fullname, $username) = (getpwuid($<))[6,0];
78 - $fullname =~ s/,.*//; # remove GECOS, bug 80011
79 - $user = sprintf "%s <%s\@gentoo.org>", $fullname, $username;
80 + $fullname =~ s/,.*//; # remove GECOS, bug 80011
81 + $user = sprintf('%s <%s@g.o>', $fullname, $username);
82 }
83
84 # Make sure that we didn't get "root"