actions = { 'octoprint_create_virtualenv': { 'command': 'sudo -u octoprint /usr/bin/python3 -m virtualenv -p python3 /opt/octoprint/venv/', 'unless': 'test -d /opt/octoprint/venv/', 'needs': { 'directory:/opt/octoprint', # provided by bundle:users 'user:octoprint', }, }, 'octoprint_install_octoprint': { 'command': 'sudo -u octoprint /opt/octoprint/venv/bin/pip install OctoPrint', 'unless': 'test -f /opt/octoprint/venv/bin/octoprint', 'needs': { 'action:octoprint_create_virtualenv', }, }, } svc_systemd = { 'octoprint': { 'needs': { 'file:/etc/systemd/system/octoprint.service', 'action:octoprint_install_octoprint', }, }, } files = { '/etc/systemd/system/octoprint.service': { 'triggers': { 'action:systemd-reload', }, }, }