bundlewrap/bundles/mx-puppet-discord/items.py
2020-08-18 15:31:52 +02:00

89 lines
2.6 KiB
Python

assert node.has_bundle('nodejs')
directories = {
'/var/log/mx-puppet-discord': {
'owner': 'mx-puppet-discord',
},
}
files = {
'/opt/mx-puppet-discord/config.yaml': {
'owner': 'mx-puppet-discord',
'content_type': 'mako',
'needs': {
'git_deploy:/opt/mx-puppet-discord',
'action:mx-puppet-discord_chown',
},
'triggers': {
'action:mx-puppet-discord_generate_registration',
'svc_systemd:mx-puppet-discord:restart',
},
},
'/etc/systemd/system/mx-puppet-discord.service': {
'source': 'service',
'triggers': {
'action:systemd-reload',
},
}
}
git_deploy = {
'/opt/mx-puppet-discord': {
'repo': 'https://github.com/matrix-discord/mx-puppet-discord.git',
'rev': 'master',
'triggers': {
'action:mx-puppet-discord_chown',
'action:mx-puppet-discord_npm_install',
'action:mx-puppet-discord_npm_build',
},
},
}
actions = {
'mx-puppet-discord_chown': {
'command': 'chown -R mx-puppet-discord:mx-puppet-discord /opt/mx-puppet-discord/*',
'needed_by': {
'action:mx-puppet-discord_npm_install',
},
'triggered': True,
},
'mx-puppet-discord_npm_install': {
'command': 'cd /opt/mx-puppet-discord && sudo -u mx-puppet-discord npm install',
'needs': {
'pkg_apt:nodejs',
'user:mx-puppet-discord',
},
'triggered': True,
},
'mx-puppet-discord_npm_build': {
'command': 'cd /opt/mx-puppet-discord && sudo -u mx-puppet-discord npm run-script build',
'needs': {
'action:mx-puppet-discord_npm_install',
},
'triggered': True,
},
'mx-puppet-discord_generate_registration': {
'command': 'cd /opt/mx-puppet-discord && $(rm /opt/mx-puppet-discord/registration.yaml || true) && sudo -u mx-puppet-discord node ./build/index.js -r -c /opt/mx-puppet-discord/config.yaml -f /opt/mx-puppet-discord/registration.yaml',
'needs': {
'user:mx-puppet-discord',
'action:mx-puppet-discord_npm_build',
'directory:/var/log/mx-puppet-discord',
},
'triggers': {
'svc_systemd:mx-puppet-discord:restart',
},
'triggered': True,
},
}
svc_systemd = {
'mx-puppet-discord': {
'needs': {
'file:/etc/systemd/system/mx-puppet-discord.service',
},
},
}
if node.has_bundle('matrix-synapse'):
actions['mx-puppet-discord_generate_registration']['triggers'].add('svc_systemd:matrix-synapse:restart')