forked from progit/progit
-
Notifications
You must be signed in to change notification settings - Fork 41
/
summary.rb
executable file
·29 lines (26 loc) · 962 Bytes
/
summary.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#! /usr/bin/env ruby
#
command = ARGV[0]
exclude = ['figures', 'figures-dia', 'figures-source', 'couchapp', 'latex', 'pdf', 'epub', 'en', 'ebooks']
data = []
original_lines=`grep -r -h '^[^[:space:]#]' en/[0]* | grep -v '^Insert'| wc -l`.to_i
Dir.glob("*").each do |dir|
if !File.file?(dir) && !exclude.include?(dir)
lines = `git diff-tree -r -p --diff-filter=M master:en master:#{dir} | grep '^-[^[:space:]#-]' | grep -v '^-Insert' | wc -l`.strip.to_i
last_commit = `git log -1 --no-merges --format="%ar" #{dir}`.chomp
authors = ""
if command == 'authors'
authors = `git shortlog --no-merges -s -n #{dir}`.chomp
end
data << [dir, lines, authors, last_commit]
end
end
d = data.sort { |a, b| b[1] <=> a[1] }
d.each do |dir, lines, authors, last|
puts "#{dir.ljust(10)} - #{(lines*100)/original_lines}% (#{last})"
if command == 'authors'
puts "Authors: #{authors.split("\n").size}"
puts authors
puts
end
end