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" |