class Uberspaceify: def __init__(self, node=None): self.node = node def nodes(self, nodes): for node_name in nodes.keys(): if not node_name.endswith(".uber.space"): continue uberspace_name = node_name.removesuffix(".uber.space") nodes[node_name]["hostname"] = node_name nodes[node_name]["username"] = uberspace_name nodes[node_name]["cmd_wrapper_outer"] = "sh -c {}" nodes[node_name]["lock_dir"] = f"/home/{uberspace_name}/.local/state/bundlewrap" return nodes def files(self, files): for file_name in files.keys(): files[file_name]["owner"] = self.node.username files[file_name]["group"] = self.node.username return files