57 lines
1.4 KiB
Ruby
57 lines
1.4 KiB
Ruby
|
#!/usr/bin/env ruby
|
||
|
|
||
|
# Warning: This script will update the current repository!!
|
||
|
#
|
||
|
# How to use
|
||
|
# 1. Run this script in the root directory of Gazebo.
|
||
|
# 2. The output will be written to /tmp/gz_loc.csv
|
||
|
# 3. Load into a Google spreadsheet.
|
||
|
# 4. Generate a graph, and select Time Line as the graph type.
|
||
|
|
||
|
printf("Warning: This will modify the current repository.\n")
|
||
|
printf("Do you want to continue (Y/n): ")
|
||
|
char = gets
|
||
|
|
||
|
if char != "Y\n"
|
||
|
abort
|
||
|
end
|
||
|
|
||
|
startYear = 2007
|
||
|
|
||
|
f = File.open('/tmp/gz_loc.csv', 'w')
|
||
|
|
||
|
time = Time.new
|
||
|
|
||
|
f.printf("date,blank,comment,code\n")
|
||
|
|
||
|
# Loop through all the years.
|
||
|
for y in (startYear..time.year)
|
||
|
|
||
|
# Get the end month
|
||
|
endMonth = y == time.year ? time.month : 12
|
||
|
|
||
|
# Loop through all the months.
|
||
|
for m in (1..endMonth)
|
||
|
date = y.to_s + "-" + m.to_s
|
||
|
|
||
|
# Update the repo
|
||
|
`hg up -C -d "#{date}"`
|
||
|
|
||
|
# Count lines of code
|
||
|
result = `cloc --force-lang=\"C++\",cc --force-lang=\"C++\",c --force-lang=\"C++\",hh --force-lang=\"C++\",h --force-lang=\"C++\",hpp --exclude_dir=deps,Media,media,cmake,doc,build --csv --quiet --progress-rate=0 *`
|
||
|
|
||
|
lines = result.split("\n")
|
||
|
|
||
|
# Grab just C++ results
|
||
|
lines.each do |line|
|
||
|
if line.include?("C++")
|
||
|
parts = line.split(",")
|
||
|
printf("%d/01/%d, %s, %s, %s\n", m, y, parts[2], parts[3], parts[4])
|
||
|
f.printf("%d/01/%d, %s, %s, %s\n", m, y, parts[2], parts[3], parts[4])
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
f.close()
|