Sha256: 9e686b56b0db72d513d3910f35efcb413127a9511012dba5111fc9b1e1ef7532

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

#!/usr/bin/env ruby

# Load path
$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))

# Requires
require 'reporter'
require 'date'
require 'html_report'
require 'html_summary'
require 'yaml'

# Command line arguments
workdir = ARGV[0]
days = ARGV[1].to_i
max_commits = ARGV[2].to_i
if (max_commits <= 0)
  max_commits = 50
end
if (ARGV[3])
  translations = YAML::load(File.open(ARGV[3]))
else
  translations = {}
end

# Action!
if (workdir and days > 0)
  puts "Git stats for repositories under #{workdir}"

  reporter = Reporter.new(workdir, translations)
  reporter.extract_all_stats(Date.new - days) do |name|
    puts "Checking #{name}..."
  end

  now = Time.now.strftime("%Y.%m.%d")

  # Repository stats
  repository_html = File.new("repositories-#{now}-#{days}.html", "w")
  repository_html.puts HtmlReport.new(reporter.repository_stats, "Statistics for repositories", days).generate
  repository_html.close

  # Commiter stats
  commiter_html = File.new("commiters-#{now}-#{days}.html", "w")
  commiter_html.puts HtmlReport.new(reporter.commiter_stats, "Statistics for commiters", days).generate
  commiter_html.close

  # Commit summary
  summary_html = File.new("summary-#{now}-#{days}.html", "w")
  summary_html.puts HtmlSummary.new(reporter.repository_summaries, "Summary", days, max_commits).generate
  summary_html.close
else
  puts "Usage: git-report.rb <path to repositories> <number of days to look back> [<number of commits in summary>]"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caelum-git-reports-0.2.0 bin/git-report.rb