aboutsummaryrefslogtreecommitdiffstats
path: root/utils/generate_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/generate_config.py')
-rwxr-xr-xutils/generate_config.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/utils/generate_config.py b/utils/generate_config.py
index 353cd47..d7109b5 100755
--- a/utils/generate_config.py
+++ b/utils/generate_config.py
@@ -10,6 +10,13 @@ PARSER.add_argument("--yaml", "-y", type=str, required=True)
PARSER.add_argument("--jinja2", "-j", type=str, required=True)
ARGS = PARSER.parse_args()
+# Processor architecture vs DPKG architecture mapping
+DPKG_ARCH_TABLE = {
+ 'aarch64': 'arm64',
+ 'x86_64': 'amd64',
+}
+ARCH_DPKG_TABLE = dict(zip(DPKG_ARCH_TABLE.values(), DPKG_ARCH_TABLE.keys()))
+
# Custom filter to allow simple IP address operations returning
# a new address from an upper or lower (negative) index
def ipaddr_index(base_address, index):
@@ -21,8 +28,18 @@ def ipaddr_index(base_address, index):
base_address_str = str(base_address)
return ipaddress.ip_address(base_address_str) + int(index)
+# Custom filter to convert between processor architecture
+# (as reported by $(uname -m)) and DPKG-style architecture
+def dpkg_arch(arch, to_dpkg=True):
+ """Return DPKG-compatible from processor arch and vice-versa"""
+ if to_dpkg:
+ return DPKG_ARCH_TABLE[arch]
+ else:
+ return ARCH_DPKG_TABLE[arch]
+
ENV = Environment(loader=FileSystemLoader('./'))
ENV.filters['ipaddr_index'] = ipaddr_index
+ENV.filters['dpkg_arch'] = dpkg_arch
with open(ARGS.yaml) as _:
DICT = yaml.safe_load(_)