diff options
Diffstat (limited to 'utils/generate_config.py')
-rwxr-xr-x | utils/generate_config.py | 17 |
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(_) |