Digitale bierlijst

install-service-files.py 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import os.path
  2. import sys
  3. systemd_user_dir = os.path.expanduser("~/.config/systemd/user")
  4. python_interpreter_dir = os.path.dirname(sys.executable)
  5. uwsgi_path = os.path.join(python_interpreter_dir, "uwsgi")
  6. piket_client_path = os.path.join(python_interpreter_dir, "piket-client")
  7. server_template = f"""[Unit]
  8. Description=piket server daemon
  9. [Service]
  10. ExecStart={uwsgi_path} --http :5000 --master --threads 2 --module piket_server:app
  11. KillSignal=SIGINT
  12. Type=notify
  13. NotifyAccess=all
  14. Environment=SENTRY_DSN={os.environ.get("SENTRY_DSN")}
  15. [Install]
  16. WantedBy=default.target
  17. """
  18. client_template = f"""[Unit]
  19. Description=piket client
  20. Requires=piket-server.service
  21. After=piket-server.service
  22. [Service]
  23. ExecStart={piket_client_path}
  24. Environment=SENTRY_DSN={os.environ.get("SENTRY_DSN")}
  25. [Install]
  26. WantedBy=graphical.target
  27. """
  28. os.makedirs(systemd_user_dir, exist_ok=True)
  29. with open(os.path.join(systemd_user_dir, "piket-server.service"), "w") as f:
  30. f.write(server_template)
  31. with open(os.path.join(systemd_user_dir, "piket-client.service"), "w") as f:
  32. f.write(client_template)
  33. print("Done! Don't forget to systemctl --user daemon-reload.")