add "jsondiff" commandline utility

This commit is contained in:
Stefan Kögl
2013-10-11 20:33:29 +02:00
parent f6f3cd2353
commit 3b841b3ffc
2 changed files with 44 additions and 0 deletions

39
bin/jsondiff Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import sys
import os.path
import json
import jsonpatch
import argparse
parser = argparse.ArgumentParser(description='Diff two JSON files')
parser.add_argument('FILE1', type=argparse.FileType('r'))
parser.add_argument('FILE2', type=argparse.FileType('r'))
parser.add_argument('--indent', type=int, default=None,
help='Indent output by n spaces')
parser.add_argument('-v', '--version', action='version',
version='%(prog)s ' + jsonpatch.__version__)
def main():
try:
diff_files()
except KeyboardInterrupt:
sys.exit(1)
def diff_files():
""" Diffs two JSON files and prints a patch """
args = parser.parse_args()
doc1 = json.load(args.FILE1)
doc2 = json.load(args.FILE2)
patch = jsonpatch.make_patch(doc1, doc2)
print(json.dumps(patch.patch, indent=args.indent))
if __name__ == "__main__":
main()

View File

@@ -52,5 +52,10 @@ setup(name=PACKAGE,
url=WEBSITE,
py_modules=MODULES,
package_data={'': ['requirements.txt']},
scripts=['bin/jsondiff'],
entry_poimts = {
'console_scripts': [
'jsondiff = jsondiff:main',
]},
**OPTIONS
)