mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-13 05:06:30 +04:00
Simpler build, less dependencies (#827)
* Simpler build, less dependencies * Follow ugly python linter * Introduce Brewfile & Update Readme * Make dist.sh target-specific * Tidy up make output * Get rid of cat and truncate (I still love cats tho) * Suppress dd output * Long live the cat
This commit is contained in:
53
scripts/meta.py
Normal file → Executable file
53
scripts/meta.py
Normal file → Executable file
@@ -1,31 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
from flipper.app import App
|
||||
import json
|
||||
|
||||
|
||||
class Main:
|
||||
def __init__(self):
|
||||
# parse CFLAGS
|
||||
self.parser = argparse.ArgumentParser(allow_abbrev=False)
|
||||
self.parser.add_argument("-p", dest="project", required=True)
|
||||
self.parser.add_argument("-DBUILD_DATE", dest="build_date", required=True)
|
||||
self.parser.add_argument("-DGIT_COMMIT", dest="commit", required=True)
|
||||
self.parser.add_argument("-DGIT_BRANCH", dest="branch", required=True)
|
||||
self.parser.add_argument("-DTARGET", dest="target", type=int, required=True)
|
||||
class Main(App):
|
||||
def init(self):
|
||||
self.subparsers = self.parser.add_subparsers(help="sub-command help")
|
||||
|
||||
def __call__(self):
|
||||
self.args, _ = self.parser.parse_known_args()
|
||||
# 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 == "project":
|
||||
if k == "project" or k == "func":
|
||||
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 |= dict
|
||||
|
||||
print(json.dumps(full, indent=4))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user