12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/python
- #
- # This program assembles the distribution file Gameduino2.zip
- # from the source .ino files, and the asset files in
- # converted-assets.
- #
- inventory = {
- '1.Basics' : "helloworld fizz blobs simon jpeg",
- '2.Graphics' : "logo walk tiled mono slotgag reflection",
- '3.Peripherals' : "sketch tilt noisy song",
- '4.Utilities' : "viewer radarchart selftest",
- '5.Demos' : "cobra jnr kenney sprites widgets",
- '6.Games' : "nightstrike chess invaders frogger chip8",
- }
- import zipfile
- def clean(src, is_due = False):
- vis = 1
- dst = []
- for l in src:
- assert not chr(9) in l, "Tab found in source"
- if is_due and ('EEPROM' in l):
- continue
- if "//'" in l:
- l = l[:l.index("//'")]
- if vis and not "JCB" in l:
- dst.append(l.rstrip() + "\n")
- else:
- if "JCB{" in l:
- vis = 0
- if "}JCB" in l:
- vis = 1
- return "".join(dst)
- for (is_due, suffix) in [(False, ""), (True, "_Due")]:
- z = zipfile.ZipFile("Gameduino2%s.zip" % suffix, "w", zipfile.ZIP_DEFLATED)
- for f in "keywords.txt GD2.cpp GD2.h transports/wiring.h".split():
- z.write(f, "Gameduino2/%s" % f)
- for d,projs in inventory.items():
- dir = "Gameduino2" + "/" + d
- for p in projs.split():
- pd = dir + "/" + p
- z.writestr("%s/%s.ino" % (pd, p), clean(open("%s.ino" % p), is_due))
- for l in open("%s.ino" % p):
- if '#include "' in l:
- hdr = l[10:l.rindex('"')]
- z.write("converted-assets/%s" % hdr, "%s/%s" % (pd, hdr))
- z.close()
- # print "\n".join(["./mkino %s" % s for s in " ".join(inventory.values()).split()])
|