bundlewrap/bundles/voc-loudness-monitor/items.py
Franzi f8bbe00d47
All checks were successful
bundlewrap/pipeline/head This commit looks good
overall better handling and usage of exceptions
2021-04-02 18:57:13 +02:00

84 lines
2.1 KiB
Python

repo.libs.tools.require_bundle(node, 'systemd')
streams = {
's1': {
'url': 'http://live.ber.c3voc.de:7999/s1',
'port': 15001,
},
's2': {
'url': 'http://live.ber.c3voc.de:7999/s2',
'port': 15002,
},
's3': {
'url': 'http://live.ber.c3voc.de:7999/s3',
'port': 15003,
},
's4': {
'url': 'http://live.ber.c3voc.de:7999/s4',
'port': 15004,
},
's5': {
'url': 'http://live.ber.c3voc.de:7999/s5',
'port': 15005,
},
's6': {
'url': 'http://live.ber.c3voc.de:7999/s6',
'port': 15006,
},
's23': {
'url': 'http://live.ber.c3voc.de:7999/s23',
'port': 15023,
},
's89': {
'url': 'http://live.ber.c3voc.de:7999/s89',
'port': 15089,
},
}
files = {}
svc_systemd = {}
users = {
'voc': {
'home': '/opt/voc-loudness-monitor',
},
}
for stream_id, config in streams.items():
config['id'] = stream_id
files['/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id)] = {
'source': 'loudness.sh',
'content_type': 'mako',
'context': config,
'mode': '0755',
'triggers': {
'svc_systemd:loudness_{}:restart'.format(stream_id),
},
'needs': {
'pkg_apt:ffmpeg',
},
}
files['/etc/systemd/system/loudness_{}.service'.format(stream_id)] = {
'source': 'loudness.service',
'content_type': 'mako',
'context': config,
'needs': {
'file:/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id),
},
'triggers': {
'action:systemd-reload',
'svc_systemd:loudness_{}:restart'.format(stream_id),
},
}
svc_systemd['loudness_{}'.format(stream_id)] = {
'needs': {
'file:/etc/systemd/system/loudness_{}.service'.format(stream_id),
},
# These units are designed to fail if the assigned stream fails. No need
# to restart them on every bw run.
# Downside of this: services must be started once they are applied.
'running': None,
}