aboutsummaryrefslogtreecommitdiff
path: root/generator/proto/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'generator/proto/__init__.py')
-rw-r--r--generator/proto/__init__.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/generator/proto/__init__.py b/generator/proto/__init__.py
index e69de29..96b2ee0 100644
--- a/generator/proto/__init__.py
+++ b/generator/proto/__init__.py
@@ -0,0 +1,19 @@
+'''This file automatically rebuilds the proto definitions for Python.'''
+
+import os
+import os.path
+import sys
+import subprocess
+
+dirname = os.path.dirname(__file__)
+protosrc = os.path.join(dirname, "nanopb.proto")
+protodst = os.path.join(dirname, "nanopb_pb2.py")
+
+if os.path.isfile(protosrc):
+ src_date = os.path.getmtime(protosrc)
+ if not os.path.isfile(protodst) or os.path.getmtime(protodst) < src_date:
+ cmd = ["protoc", "--python_out=.", "nanopb.proto", "plugin.proto"]
+ status = subprocess.call(cmd, cwd = dirname)
+ if status != 0:
+ sys.stderr.write("Failed to build nanopb_pb2.py: " + ' '.join(cmd) + "\n")
+