Only the mutt format is supported for now. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- contrib/cc-cmd/git-cc-cmd | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/contrib/cc-cmd/git-cc-cmd b/contrib/cc-cmd/git-cc-cmd index 4fad030..200da0d 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, :full], '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, :roles @@ -56,6 +79,8 @@ class Commit end end @roles = roles.map do |person, role| + address = "%s <%s>" % person + person = nil, $aliases[address] if $aliases.include?(address) [person, role] end end -- 1.8.2.1.790.g4588561 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html