bundlewrap/bundles/mautrix-telegram/items.py

79 lines
2.9 KiB
Python

actions = {
'mautrix-telegram_create_virtualenv': {
'command': '/usr/bin/python3 -m virtualenv -p python3 /opt/mautrix-telegram/venv/',
'unless': 'test -d /opt/mautrix-telegram/venv/',
'needs': {
'directory:/opt/mautrix-telegram', # provided by bundle:users
},
},
'mautrix-telegram_install_bridge': {
# TODO find out how we can check if *this package* requires an update
'command': '/opt/mautrix-telegram/venv/bin/pip install --upgrade mautrix-telegram[all]',
'needs': {
'action:mautrix-telegram_create_virtualenv',
},
'triggers': {
'action:mautrix-telegram_generate_registration',
'action:mautrix-telegram_upgrade_database',
},
},
'mautrix-telegram_generate_registration': {
'command': '/opt/mautrix-telegram/venv/bin/python3 -m mautrix_telegram -c /opt/mautrix-telegram/config.yaml -r /opt/mautrix-telegram/registration.yaml -g',
'needs': {
'file:/opt/mautrix-telegram/config.yaml',
},
'triggers': {
'svc_systemd:mautrix-telegram:restart',
},
'triggered': True,
},
'mautrix-telegram_init_alembic': {
'command': '/opt/mautrix-telegram/venv/bin/alembic -c /opt/mautrix-telegram/alembic.ini -x /opt/mautrix-telegram/config.yaml init /opt/mautrix-telegram/alembic',
'unless': 'test -d /opt/mautrix-telegram/alembic',
'needs': {
'file:/opt/mautrix-telegram/alembic.ini',
},
},
'mautrix-telegram_upgrade_database': {
'command': '/opt/mautrix-telegram/venv/bin/alembic -c /opt/mautrix-telegram/alembic.ini -x /opt/mautrix-telegram/config.yaml upgrade head',
'needs': {
# Actually, the dependency is 'mautrix-telegram has run
# atleast once, but we can't check that.
'action:mautrix-telegram_generate_registration',
'action:mautrix-telegram_init_alembic',
'postgres_db:mautrix-telegram',
'postgres_role:mautrix-telegram',
},
'triggered': True,
},
}
svc_systemd = {
'mautrix-telegram': {
'needs': {
'action:mautrix-telegram_generate_registration',
'action:mautrix-telegram_upgrade_database',
'file:/etc/systemd/system/mautrix-telegram.service',
'postgres_db:mautrix-telegram',
'postgres_role:mautrix-telegram',
},
},
}
files = {
'/opt/mautrix-telegram/config.yaml': {
'content_type': 'mako',
'triggers': {
'svc_systemd:mautrix-telegram:restart',
},
},
'/etc/systemd/system/mautrix-telegram.service': {
'triggers': {
'svc_systemd:mautrix-telegram:restart',
},
},
'/opt/mautrix-telegram/alembic.ini': {},
}
if node.has_bundle('matrix-synapse'):
actions['mautrix-telegram_generate_registration']['triggers'].add('svc_systemd:matrix-synapse:restart')