Blob


1 #!/usr/bin/env python3
2 #
3 # Copyright 2022, Mischa Peters <mischa AT alkira DOT net>, Alkira.
4 # validate-json.py
5 # Version 0.1 - 20220617 - initial release
6 #
7 # Permission to use, copy, modify, and distribute this software for any
8 # purpose with or without fee is hereby granted, provided that the above
9 # copyright notice and this permission notice appear in all copies.
10 #
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 #
19 import sys
20 import json
21 import argparse
23 # Parse all arguments
24 parser = argparse.ArgumentParser(description="Validate JSON config")
25 parser.add_argument("-f", "--file", type=str, help="location of the JSON connector file")
26 parser.add_argument("-p", "--pretty", help="make the JSON pretty!", action="store_true")
27 if len(sys.argv)==1:
28 parser.print_help(sys.stderr)
29 sys.exit(1)
31 try:
32 args = parser.parse_args()
33 json_file = args.file
34 except argparse.ArgumentError as e:
35 print(str(e))
36 sys.exit()
38 with open (json_file, 'r') as f:
39 body = json.load(f)
40 if args.pretty:
41 print(json.dumps(body, indent=4))
42 else:
43 print(json.dumps(body))