Only the mutt format is supported for now.
Signed-off-by: Felipe Contreras <[email protected]>
---
contrib/cc-cmd/git-cc-cmd | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/contrib/cc-cmd/git-cc-cmd b/contrib/cc-cmd/git-cc-cmd
index 6911259..02548c6 100755
--- a/contrib/cc-cmd/git-cc-cmd
+++ b/contrib/cc-cmd/git-cc-cmd
@@ -7,6 +7,8 @@ $min_percent = 5
$show_commits = false
$files = []
$rev_args = []
+$get_aliases = false
+$aliases = {}
begin
OptionParser.new do |opts|
@@ -22,11 +24,32 @@ begin
opts.on('-c', '--commits[=FORMAT]', [:raw], 'List commits instead of
persons') do |v|
$show_commits = v || true
end
+ opts.on('-a', '--aliases', 'Use aliases') do |v|
+ $get_aliases = v
+ end
end.parse!
rescue OptionParser::InvalidOption => e
$rev_args += e.args
end
+def get_aliases
+ type = %x[git config sendemail.aliasfiletype].chomp
+ return if type != 'mutt'
+ file = %x[git config sendemail.aliasesfile].chomp
+ File.open(File.expand_path(file)) do |f|
+ f.each do |line|
+ if line =~ /^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/
+ key, addresses = $1, $2.split(', ')
+ addresses.each do |address|
+ $aliases[address] = key
+ end
+ end
+ end
+ end
+end
+
+get_aliases if $get_aliases
+
class Commit
attr_reader :id
@@ -60,6 +83,7 @@ class Commit
end
roles = roles.map do |person, role|
address = "%s <%s>" % person
+ person = nil, $aliases[address] if $aliases.include?(address)
[person, role]
end
[id, roles]
--
1.8.2.1.790.g4588561
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html