diff --git a/bundles/left4dead2/metadata.py b/bundles/left4dead2/metadata.py index cad40cf..da9cba0 100644 --- a/bundles/left4dead2/metadata.py +++ b/bundles/left4dead2/metadata.py @@ -44,8 +44,7 @@ def server_units(metadata): units[f'left4dead2-{name}.service'] = { 'Unit': { 'Description': f'left4dead2 server {name}', - 'After': 'network.target', - 'Requires': 'steam-update.service', + 'After': {'steam.target'}, }, 'Service': { 'User': 'steam', diff --git a/bundles/steam-workshop-download/metadata.py b/bundles/steam-workshop-download/metadata.py index 5470593..4423bec 100644 --- a/bundles/steam-workshop-download/metadata.py +++ b/bundles/steam-workshop-download/metadata.py @@ -16,7 +16,11 @@ def workshop(metadata): units[f'steam-workshop-download-{name}.service'] = { 'Unit': { 'Description': 'install workshop items', - 'After': 'network-online.target', + 'After': { + 'network-online.target', + 'steam-update.target', + }, + 'Before': 'steam.target', }, 'Service': { 'Type': 'oneshot', diff --git a/bundles/steam/metadata.py b/bundles/steam/metadata.py index 199d35a..7af9f8e 100644 --- a/bundles/steam/metadata.py +++ b/bundles/steam/metadata.py @@ -10,6 +10,15 @@ defaults = { 'left4dead2': 222860, }, }, + 'systemd': { + 'units': { + 'steam.target': { + 'Unit': { + 'Description': 'steam is ready', + }, + }, + }, + }, 'zfs': { 'datasets': { 'tank/steam': { @@ -31,7 +40,8 @@ def initial_unit(metadata): 'steam-update.service': { 'Unit': { 'Description': 'steam: install and update games', - 'After': 'network.target', + 'After': 'network-online.target', + 'Before': 'steam.target', }, 'Service': { 'Type': 'oneshot', diff --git a/bundles/systemd/items.py b/bundles/systemd/items.py index 51f108d..7927115 100644 --- a/bundles/systemd/items.py +++ b/bundles/systemd/items.py @@ -14,7 +14,7 @@ actions = { 'command': 'systemctl daemon-reload', 'cascade_skip': False, 'triggered': True, - }, + }, } for name, unit in node.metadata.get('systemd/units').items(): @@ -30,7 +30,7 @@ for name, unit in node.metadata.get('systemd/units').items(): 'svc_systemd:systemd-networkd:restart', ], } - elif extension in ['timer', 'service', 'mount', 'swap']: + elif extension in ['timer', 'service', 'mount', 'swap', 'target']: path = f'/usr/local/lib/systemd/system/{name}' dependencies = { 'triggers': [ diff --git a/bundles/systemd/metadata.py b/bundles/systemd/metadata.py index 32c901a..364dc32 100644 --- a/bundles/systemd/metadata.py +++ b/bundles/systemd/metadata.py @@ -25,9 +25,6 @@ def units(metadata): type = name.split('.')[-1] - if type not in ['timer', 'service', 'network', 'netdev', 'mount', 'swap']: - raise Exception(f'unknown type {type}') - if not config.get('Install/WantedBy'): if type == 'service': units[name] = {