if node.os != "alpine": raise BundleError(f"{node.name}: OS {node.os} is not supported.") git_deploy = { "/opt/svtree": { "repo": "https://git.sr.ht/~robertgzr/svtree", "rev": "master", }, } symlinks = { "/etc/init.d/svtree": { "target": "/opt/svtree/openrc.service", "needs": {"git_deploy:/opt/svtree"}, }, "/etc/s6-rc/templates/service": { "target": "/opt/svtree/templates/service", "needs": {"git_deploy:/opt/svtree"}, }, "/usr/bin/sv": { "target": "/opt/svtree/bin/sv", "needs": {"git_deploy:/opt/svtree"}, }, } directories = { # svtree dist "/opt/svtree": {}, # svtree-related directories "/etc/s6-rc/src": {"purge": True}, "/etc/s6-rc/templates": {"purge": True}, "/etc/s6-rc/generate": {}, # directory for bundles started by default "/etc/s6-rc/src/default/contents.d": {"purge": True}, # service templates "/etc/s6-rc/src/services/contents.d": {}, "/etc/s6-rc/services": {"purge": True}, } files = { "/etc/s6-rc/src/default/type": { "content_type": "text", "content": "bundle", "triggers": { "svc_openrc:svtree:reload", }, }, "/etc/s6-rc/src/services/type": { "content_type": "text", "content": "bundle", "triggers": { "svc_openrc:svtree:reload", }, }, "/etc/s6-rc/src/default/contents.d/services": { "content_type": "text", "content": "", "triggers": { "svc_openrc:svtree:reload", }, }, } svc_openrc = { "svtree": { "enabled": True, "running": True, "needs": {"symlink:/etc/init.d/svtree"}, }, } for service, _ in node.metadata.get("services", {}).items(): svc_s6rc[service] = { "runlevel": "default", "bundle": "services", "generate": "service", }