aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Spiers <git@adamspiers.org>2015-01-08 13:16:48 +0000
committerAdam Spiers <git@adamspiers.org>2015-01-08 16:35:49 +0000
commit26367bde141098207ee447fa6d1755bf510c1674 (patch)
treeb8a5dbcebc2d02e0b3ecde3d01613dd91b7b2fc5
parent76a96ddcf1bd1abbc46cb9c1b6259ade60dbafbb (diff)
downloadgit-deps-26367bde141098207ee447fa6d1755bf510c1674.tar.gz
add route for dynamically retrieving JSON
-rwxr-xr-xgit-deps19
1 files changed, 13 insertions, 6 deletions
diff --git a/git-deps b/git-deps
index 4393831..bc57c5c 100755
--- a/git-deps
+++ b/git-deps
@@ -238,10 +238,7 @@ class JSONDependencyListener(DependencyListener):
self._json['dependencies'].append(new_dependency)
def json(self):
- return json.dumps(self._json, sort_keys=True, indent=4)
-
- def all_done(self):
- print(self.json())
+ return self._json
class DependencyDetector(object):
@@ -616,8 +613,11 @@ def cli(options, args):
except KeyboardInterrupt:
pass
+ if options.json:
+ print(json.dumps(listener.json(), sort_keys=True, indent=4))
+
-def serve():
+def serve(options):
try:
import flask
from flask import Flask, send_file, safe_join
@@ -653,6 +653,13 @@ def serve():
route = '/%s/<path:filename>' % subdir
webserver.add_url_rule(route, subdir + '_handler', fn)
+ @webserver.route('/deps.json/<commitish>')
+ def deps(commitish):
+ listener = JSONDependencyListener(options)
+ detector = DependencyDetector(options, listener=listener)
+ detector.find_dependencies(commitish)
+ return flask.json.jsonify(listener.json())
+
webserver.run()
@@ -661,7 +668,7 @@ def main():
# rev_list = sys.stdin.readlines()
if options.serve:
- serve()
+ serve(options)
else:
cli(options, args)