summaryrefslogtreecommitdiff
path: root/packages/aws-gateway-load-balancer-tunnel-handler/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aws-gateway-load-balancer-tunnel-handler/build.py')
-rwxr-xr-xpackages/aws-gateway-load-balancer-tunnel-handler/build.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/packages/aws-gateway-load-balancer-tunnel-handler/build.py b/packages/aws-gateway-load-balancer-tunnel-handler/build.py
new file mode 100755
index 00000000..46778059
--- /dev/null
+++ b/packages/aws-gateway-load-balancer-tunnel-handler/build.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2023 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import subprocess
+import toml
+
+def build_package(arch, version, source_dir):
+ package_dir = f"aws-gwlbtun-{arch}"
+ deb_name = f"aws-gwlbtun_{version}_{arch}.deb"
+
+ # Navigate to the repository directory
+ os.chdir(source_dir)
+
+ # Build the binary
+ subprocess.run(["cmake", f"-DARCH={arch}"])
+ subprocess.run(["make"])
+
+ # Create the Debian package directory structure
+ os.makedirs(f"{package_dir}/DEBIAN", exist_ok=True)
+ os.makedirs(f"{package_dir}/usr/bin", exist_ok=True)
+
+ # Move the binary to the package directory
+ subprocess.run(["cp", "gwlbtun", f"{package_dir}/usr/bin"])
+
+ # Create the control file
+ control_file = f"""Package: aws-gwlbtun
+Version: {version}
+Architecture: {arch}
+Maintainer: VyOS Maintainers <autobuild@vyos.net>
+Description: AWS Gateway Load Balancer Tunnel Handler
+"""
+ with open(f"{package_dir}/DEBIAN/control", "w") as f:
+ f.write(control_file)
+
+ # Build the Debian package
+ subprocess.run(["dpkg-deb", "--build", package_dir])
+
+ # Move the generated package to the original working directory with the correct name
+ subprocess.run(["mv", f"{package_dir}.deb", f"../{deb_name}"])
+
+ # Clean up
+ subprocess.run(["make", "clean"])
+
+ # Go back to the initial directory
+ os.chdir("..")
+
+def main():
+ # Load configuration from TOML file
+ config = toml.load("build_config.toml")
+ version = config["version"]
+ architectures = config["architectures"]
+ source_dir = config.get("sourceDir", "aws-gateway-load-balancer-tunnel-handler")
+
+ for arch in architectures:
+ build_package(arch, version, source_dir)
+
+if __name__ == "__main__":
+ main()