summaryrefslogtreecommitdiff
path: root/python/setup.py
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-03-18 15:48:30 +0000
committerGitHub <noreply@github.com>2025-03-18 15:48:30 +0000
commit78a3ba7039e8ad9be8ca1960ecc5dac9a985fb0e (patch)
tree2fdef8540f26e4e03dbea232a09a26360fd7ada7 /python/setup.py
parent62ebdb827b1b3097b345aae0cf13b636ca055537 (diff)
parentd8a6295a13a6eb8faf127639ae15fa76608e7351 (diff)
downloadvyos-1x-78a3ba7039e8ad9be8ca1960ecc5dac9a985fb0e.tar.gz
vyos-1x-78a3ba7039e8ad9be8ca1960ecc5dac9a985fb0e.zip
Merge pull request #4398 from jestabro/commitd
T7121: Set up communication vyconfd to vyos-commitd
Diffstat (limited to 'python/setup.py')
-rw-r--r--python/setup.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/python/setup.py b/python/setup.py
index 2d614e724..96dc211f7 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -1,5 +1,11 @@
import os
+import sys
+import subprocess
from setuptools import setup
+from setuptools.command.build_py import build_py
+
+sys.path.append('./vyos')
+from defaults import directories
def packages(directory):
return [
@@ -8,6 +14,35 @@ def packages(directory):
if os.path.isfile(os.path.join(_[0], '__init__.py'))
]
+
+class GenerateProto(build_py):
+ ver = os.environ.get('OCAML_VERSION')
+ if ver:
+ proto_path = f'/opt/opam/{ver}/share/vyconf'
+ else:
+ proto_path = directories['proto_path']
+
+ def run(self):
+ # find all .proto files in vyconf proto_path
+ proto_files = []
+ for _, _, files in os.walk(self.proto_path):
+ for file in files:
+ if file.endswith('.proto'):
+ proto_files.append(file)
+
+ # compile each .proto file to Python
+ for proto_file in proto_files:
+ subprocess.check_call(
+ [
+ 'protoc',
+ '--python_out=vyos/proto',
+ f'--proto_path={self.proto_path}/',
+ proto_file,
+ ]
+ )
+
+ build_py.run(self)
+
setup(
name = "vyos",
version = "1.3.0",
@@ -29,4 +64,7 @@ setup(
"config-mgmt = vyos.config_mgmt:run",
],
},
+ cmdclass={
+ 'build_py': GenerateProto,
+ },
)