| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env python3
- import json
- from flipper.app import App
- class Main(App):
- def init(self):
- self.subparsers = self.parser.add_subparsers(help="sub-command help")
- # generate
- self.parser_generate = self.subparsers.add_parser(
- "generate", help="Generate JSON meta file"
- )
- self.parser_generate.add_argument("-p", dest="project", required=True)
- self.parser_generate.add_argument(
- "-DBUILD_DATE", dest="build_date", required=True
- )
- self.parser_generate.add_argument("-DGIT_COMMIT", dest="commit", required=True)
- self.parser_generate.add_argument("-DGIT_BRANCH", dest="branch", required=True)
- self.parser_generate.add_argument(
- "-DTARGET", dest="target", type=int, required=True
- )
- self.parser_generate.set_defaults(func=self.generate)
- # merge
- self.parser_merge = self.subparsers.add_parser(
- "merge", help="Merge JSON meta files"
- )
- self.parser_merge.add_argument(
- "-i", dest="input", action="append", nargs="+", required=True
- )
- self.parser_merge.set_defaults(func=self.merge)
- def generate(self):
- meta = {}
- for k, v in vars(self.args).items():
- if k in ["project", "func", "debug"]:
- continue
- if isinstance(v, str):
- v = v.strip('"')
- meta[self.args.project + "_" + k] = v
- print(json.dumps(meta, indent=4))
- return 0
- def merge(self):
- full = {}
- for path in self.args.input[0]:
- with open(path, mode="r") as file:
- dict = json.loads(file.read())
- full.update(dict)
- print(json.dumps(full, indent=4))
- return 0
- if __name__ == "__main__":
- Main()()
|