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