OSDN Git Service

three.jsをThirdPartyに追加
[webglgame/webgl_framework.git] / webglFramework / Thirdparty / three.js-master / utils / converters / msgpack / json2msgpack.py
diff --git a/webglFramework/Thirdparty/three.js-master/utils/converters/msgpack/json2msgpack.py b/webglFramework/Thirdparty/three.js-master/utils/converters/msgpack/json2msgpack.py
new file mode 100644 (file)
index 0000000..1abbfad
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+__doc__ = '''
+Convert a json file to msgpack.
+
+If fed only an input file the converted will write out a .pack file
+of the same base name in the same directory
+$ json2msgpack.py -i foo.json
+foo.json > foo.pack
+
+Specify an output file path
+$ json2msgpack.py -i foo.json -o /bar/tmp/bar.pack
+foo.json > /bar/tmp/bar.pack
+
+Dependencies:
+https://github.com/msgpack/msgpack-python
+'''
+
+import os
+import sys
+import json
+import argparse
+
+sys.path.append(os.path.dirname(os.path.realpath(__file__)))
+
+import msgpack
+
+EXT = '.pack'
+
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-i', '--infile', required=True,
+        help='Input json file to convert to msgpack')
+    parser.add_argument('-o', '--outfile',
+        help=('Optional output. If not specified the .pack file '\
+            'will write to the same director as the input file.'))
+    args = parser.parse_args()
+    convert(args.infile, args.outfile)
+
+def convert(infile, outfile):
+    if not outfile:
+        ext = infile.split('.')[-1]
+        outfile = '%s%s' % (infile[:-len(ext)-1], EXT)
+
+    print('%s > %s' % (infile, outfile))
+
+    print('reading in JSON')
+    with open(infile) as op:
+        data = json.load(op)
+
+    print('writing to msgpack')
+    with open(outfile, 'wb') as op:
+        msgpack.dump(data, op)
+
+if __name__ == '__main__':
+    main()