summaryrefslogtreecommitdiff
path: root/gas.py
diff options
context:
space:
mode:
Diffstat (limited to 'gas.py')
-rw-r--r--gas.py94
1 files changed, 61 insertions, 33 deletions
diff --git a/gas.py b/gas.py
index 40509e8..ffb4ba6 100644
--- a/gas.py
+++ b/gas.py
@@ -1,77 +1,105 @@
# -*- coding: utf-8 -*-
import argparse
+import os
+import pickle
from board import DynamicFlyer
-
-
-
-
+from repository import RepositoryChecker
if __name__ == '__main__':
parser = argparse.ArgumentParser()
+ parser.add_argument('--repo', help='Set the Git repository to process', type=str, required=True)
+ parser.add_argument('--year', help='Set the year to pay attention to', type=int, required=True)
parser.add_argument('--header', help='Define the main title of the picture', type=str, required=True)
parser.add_argument('--footer', help='Define a conclusion for the picture', type=str, required=True)
parser.add_argument('--output', help='Set the output filename', type=str, required=True)
args = parser.parse_args()
+ cache = args.repo + '.pickle'
+ if os.path.isfile(cache):
- flyer = DynamicFlyer(250)
+ checker = pickle.load(open(cache, 'rb'))
- flyer.print_header(args.header)
+ else:
- data = {
- 100 : 100,
- 200 : 123,
- 400 : 700,
- 600 : 650,
- 900 : 900
- }
+ checker = RepositoryChecker(args.repo, args.year)
+ checker.process()
- color = (0.5, 0.2, 0.7)
+ pickle.dump(checker, open(cache, 'wb'))
- color = (0.047, 0.365, 0.533)
+ # Colors
- flyer.render_commit_timeline(0, 1000, data, False, color)
+ red = (1.0, 0.353, 0.165)
+ blue = (0.047, 0.365, 0.533)
+ green = (0.118, 0.71, 0.392)
+ grey = (0.6, 0.6, 0.6)
- colors = [ (0.812, 0.176, 0.08), (0.04, 0.58, 0.255) ]
+ # Draw now!
- colors = [ (0.643, 0.133, 0), (0, 0.459, 0.20) ]
+ flyer = DynamicFlyer(250)
- colors = [ (1.0, 0.353, 0.165), (0.118, 0.71, 0.392) ]
+ flyer.print_header(args.header)
- data = {
- 'Insertions' : 794,
- 'Deletions' : 312
- }
+ flyer.render_commit_timeline(checker.get('start'), checker.get('end'), checker.get('timeline'), False, blue)
- flyer.render_pie('Code', data, colors)
+ # Code
data = {
- 'Added' : 100,
- 'Removed' : 13
+ 'Insertions' : (checker.get('insertions'), green),
+ 'Deletions' : (checker.get('deletions'), red)
}
- flyer.render_pie('Files', data, colors)
+ flyer.render_pie('Code', data)
+
+ print('[i] Code:', checker.get('insertions'), checker.get('deletions'))
+
+ # Files
data = {
- 'C' : 2489,
- 'Python' : 631
+ 'Added' : (checker.get('added'), green),
+ 'Removed' : (checker.get('removed'), red)
}
- flyer.render_pie('Languages', data, colors)
+ flyer.render_pie('Files', data)
+
+ print('[i] Files:', checker.get('added'), checker.get('removed'))
+
+ # Languages
+
+ used = checker.get('last_metrics').get_most_used(4)
+
+ data = {}
+
+ colors = (green, red, blue, grey)
+
+ i = 0
+
+ for v, n in used:
+
+ data[n] = (v, colors[i])
+
+ i += 1
+
+ flyer.render_pie('Languages', data)
+
+ # TODO / FIXME
data = {
- 'Remaining' : 89,
- 'Killed' : 31
+ 'Old' : (checker.get('old'), grey),
+ 'New' : (checker.get('new'), red),
+ 'Killed' : (checker.get('killed'), green)
}
- flyer.render_pie('TODO / FIXME', data, colors)
+ flyer.render_pie('TODO / FIXME', data)
+
+ print('[i] TODO / FIXME:', checker.get('old'), checker.get('new'), checker.get('killed'))
+ # Conclusion
flyer.print_footer(args.footer)