uberspaceify = repo.libs.uberspace.Uberspaceify(node) directories = uberspaceify.directories({ f'/home/{node.username}/.local/state/prometheus-node-exporter/textfiles': { }, }) files = uberspaceify.files({ f'/home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz': { "content_type": "download", "source": "https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz", "content_hash": "847bd800f3cae9c8e613c9d2fb59ffc7bb3eb764", "triggers": [ "action:prometheus-node-exporter-install", ], }, f"/home/{node.username}/etc/services.d/prometheus-node-exporter.ini": { "source": "prometheus-node-exporter.ini", "content_type": "jinja2", "triggers": [ "action:supervisord-reread", "svc_uberspace_supervisord:prometheus-node-exporter:update", ], }, }) actions["prometheus-node-exporter-exists"] = { "command": 'true', "unless": f'[[ -f "/home/{node.username}/bin/prometheus-node-exporter" && -x "/home/{node.username}/bin/prometheus-node-exporter" ]]', "triggers": [ "action:prometheus-node-exporter-install", ], } actions["prometheus-node-exporter-install"] = { "command": f'tar -xf /home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz node_exporter*/node_exporter --to-stdout > /home/{node.username}/bin/prometheus-node-exporter && chmod +x /home/{node.username}/bin/prometheus-node-exporter', "triggered": True, "needs": [ f"file:/home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz", ], } svc_uberspace_supervisord["prometheus-node-exporter"] = { "needs": [ f"file:/home/{node.username}/etc/services.d/prometheus-node-exporter.ini", ], }