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 = { "/opt/svtree": {}, "/etc/s6-rc/src": { 'purge': True }, "/etc/s6-rc/templates": { 'purge': True }, '/etc/s6-rc/generate': { 'purge': True }, "/etc/s6-rc/src/default/contents.d": { 'purge': True }, "/etc/s6-rc/src/services/contents.d": { 'purge': True }, "/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", }