2013-09-19 14:43:36 -07:00
|
|
|
#!/usr/bin/env python
|
|
|
|
import os
|
2019-09-26 22:18:28 -07:00
|
|
|
import sys
|
|
|
|
|
|
|
|
import capnp
|
2021-10-01 11:00:22 -07:00
|
|
|
|
|
|
|
capnp.add_import_hook(
|
|
|
|
[os.getcwd(), "/usr/local/include/"]
|
|
|
|
) # change this to be auto-detected?
|
2013-09-19 14:43:36 -07:00
|
|
|
|
2019-12-11 22:44:44 -08:00
|
|
|
import test_capnp # noqa: E402
|
2013-09-19 14:43:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
def decode(name):
|
2013-09-20 00:27:43 -07:00
|
|
|
class_name = name[0].upper() + name[1:]
|
2022-05-24 11:38:27 +10:00
|
|
|
with getattr(test_capnp, class_name).from_bytes(sys.stdin.read()) as msg:
|
|
|
|
print(msg._short_str())
|
2013-09-19 14:43:36 -07:00
|
|
|
|
2019-12-11 22:44:44 -08:00
|
|
|
|
2013-09-19 14:43:36 -07:00
|
|
|
def encode(name):
|
|
|
|
val = getattr(test_capnp, name)
|
|
|
|
class_name = name[0].upper() + name[1:]
|
|
|
|
message = getattr(test_capnp, class_name).from_dict(val.to_dict())
|
2013-09-20 00:27:43 -07:00
|
|
|
print(message.to_bytes())
|
2013-09-19 14:43:36 -07:00
|
|
|
|
2019-09-26 22:18:28 -07:00
|
|
|
|
2021-10-01 11:00:22 -07:00
|
|
|
if sys.argv[1] == "decode":
|
2013-09-19 14:43:36 -07:00
|
|
|
decode(sys.argv[2])
|
|
|
|
else:
|
|
|
|
encode(sys.argv[2])
|