json file generation

This commit is contained in:
Eric Van Albert
2017-06-17 20:33:43 -04:00
parent 3bf8361f42
commit a5a7976a0e
3 changed files with 33 additions and 7 deletions

View File

@@ -9,6 +9,7 @@ import itertools
scad_fn = sys.argv[1]
d_fn = sys.argv[2]
json_fn = sys.argv[3]
with open(scad_fn) as f:
scad_text = f.read()
@@ -16,6 +17,10 @@ with open(scad_fn) as f:
poly_reqs = re.findall(r'<(.+\.gen\.scad)>', scad_text)
modules = re.findall(r"module\s+([^\s\(]+)\s*\("
r".+"
r'name\s*=\s*("[^"]+")'
r".+"
r'/\*(.+?)\*/'
r".+"
r"outlines_k\s*=\s*(\[[^\]]+\])"
r".+"
@@ -28,9 +33,11 @@ if len(modules) == 0:
module = modules[0]
(n, os, ws) = module
(m, n, d, os, ws) = module
# Dirty hack to parse OpenSCAD lists
# Dirty hack to parse OpenSCAD types
n = json.loads(n)
d = d.strip()
os = json.loads(os)
ws = json.loads(ws)
@@ -40,7 +47,7 @@ def sanitize(s):
all_keys = [(n, o, w) for o in os for w in ws]
def stl_filename(n, o, w):
return "$(STL_DIR)/{n}_{o_s}_{w_s}.stl".format(n=n, o=o, w=w, o_s=sanitize(o), w_s=sanitize(w))
return "$(STL_DIR)/{n_s}_{o_s}_{w_s}.stl".format(n_s=sanitize(n), o_s=sanitize(o), w_s=sanitize(w))
all_keys_makefile = ["{stl_fn}: {scad_fn} {deps}\n\t$(SCAD) $(SCADFLAGS) -D 'outline=\"{o}\"' -D 'warding=\"{w}\"' {scad_fn} -o $@"
.format(n=n, o=o, w=w,
@@ -52,3 +59,13 @@ all_keys_makefile.append("STL_OBJ += {}".format(" \\\n ".join(all_stl)))
with open(d_fn, "w") as f:
print("\n".join(all_keys_makefile), file=f
)
json_obj = {
"name": n,
"description": d,
"outlines": os,
"wardings": ws
}
with open(json_fn, "w") as f:
print(json.dumps(json_obj), file=f)