return output_html('diff.html', **context)
-def diff_to_dist(old_url, new_url, dist_path):
+def diff_to_dist(old_url, new_url, dist_path, style='repo'):
"""create a dist-dir of diffs, contains html and css"""
static_dir = os.path.join(
os.path.dirname(os.path.abspath(__file__)), 'static')
- output_html = diff_to_HTML(old_url, new_url)
+ output_html = diff_to_HTML(old_url, new_url, style)
if not os.path.exists(dist_path):
os.makedirs(dist_path)
parser.add_argument(dest='old', help='old repo')
parser.add_argument(dest='new', help='new repo')
parser.add_argument('--json', help='output json diffs', action='store_true')
- parser.add_argument('-t', dest='type', help="which diff you want(repo | image, default is repo)")
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('-t', dest='type', default='repo', help="which diff you want(repo | image, default is repo)")
+ group.add_argument('-d', dest='directory', help="Output html diffs into the directory")
args = parser.parse_args(argv)
- if args.json:
- print snapdiff.diff_to_JSON(args.old, args.new, style=args.type or 'repo')
+ if args.directory:
+ snapdiff.diff_to_dist(args.old, args.new, args.directory, style=args.type or 'repo')
+ print "Diff between '%s' and '%s' has been ready in %s" % (args.old, args.new, args.directory)
+ elif args.json:
+ print snapdiff.diff_to_JSON(args.old, args.new, style=args.type)
else:
- print snapdiff.diff_to_HTML(args.old, args.new, style=args.type or 'repo')
+ print snapdiff.diff_to_HTML(args.old, args.new, style=args.type)
if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
+ try:
+ sys.exit(main(sys.argv[1:]))
+ except KeyboardInterrupt:
+ pass