bundlewrap/bundles/travelynx/items.py

88 lines
2.3 KiB
Python
Raw Normal View History

2020-08-19 16:43:32 +00:00
pkg_apt = {
'perl': {},
'cpanminus': {},
}
directories = {
'/var/cache/travelynx': {
'owner': 'travelynx',
'mode': '0700',
},
}
files = {
'/etc/systemd/system/travelynx.service': {
'triggers': {
'action:systemd-reload',
},
},
'/etc/systemd/system/travelynx-worker.service': {
'triggers': {
'action:systemd-reload',
},
},
2020-08-19 16:43:32 +00:00
'/opt/travelynx/travelynx.conf': {
'content_type': 'mako',
'context': node.metadata['travelynx'],
'needs': {
'git_deploy:/opt/travelynx',
},
'triggers': {
'svc_systemd:travelynx:restart',
},
2020-08-19 16:43:32 +00:00
},
}
git_deploy = {
'/opt/travelynx': {
'repo': 'https://github.com/derf/travelynx.git',
'rev': node.metadata['travelynx']['version'],
2020-08-19 16:43:32 +00:00
'triggers': {
'action:travelynx_install_deps',
'action:travelynx_database_migrate',
'svc_systemd:travelynx:restart',
},
},
}
actions = {
'travelynx_install_deps': {
'command': 'cd /opt/travelynx && cpanm -in --no-man-pages --installdeps .',
'needs': {
'pkg_apt:perl',
'pkg_apt:cpanminus',
},
'triggered': True,
},
'travelynx_database_migrate': {
'command': 'cd /opt/travelynx && perl index.pl database migrate',
# Because git_deploy does not put .git onto the server, the script
# will complain on STDERR about not finding a git repository.
# That's why we need to redirect stderr to /dev/null.
'unless': 'cd /opt/travelynx && [ $(perl index.pl database has-current-schema 2>/dev/null) = "yes" ]',
'needs': {
'action:travelynx_install_deps',
'file:/opt/travelynx/travelynx.conf',
'postgres_db:travelynx',
'postgres_role:travelynx',
},
'triggered': True,
},
}
svc_systemd = {
'travelynx': {
'needs': {
'file:/etc/systemd/system/travelynx.service',
'action:travelynx_database_migrate',
'directory:/var/cache/travelynx',
},
},
'travelynx-worker': {
'needs': {
'file:/etc/systemd/system/travelynx-worker.service',
'svc_systemd:travelynx',
},
},
2020-08-19 16:43:32 +00:00
}