"""Generate jail.conf.d entries.""" from __future__ import annotations from .config import JailConfig, MainConfig def render_jail_conf( main: MainConfig, jail: JailConfig, *, jailname: str | None = None, root: str | None = None, ) -> str: """Render jail.conf content for the jail.""" name = jailname or jail.name if not root: raise ValueError("root path is required to render jail.conf") lines = [ f"{name} {{", f" host.hostname = \"{name}\";", f" path = \"{root}\";", " mount.devfs;", " exec.clean;", " exec.start = \"/bin/sh /etc/rc\";", " exec.stop = \"/bin/sh /etc/rc.shutdown jail\";", "}", ] base = "\n".join(lines) if jail.extra_jail_conf: base += "\n" + jail.extra_jail_conf.rstrip() + "\n" return base