From 808a78bad1cf6cbb9252867c4651141b6be3f462 Mon Sep 17 00:00:00 2001 From: frank Date: Sun, 1 Jan 2023 20:48:08 -0800 Subject: [PATCH] shift plus quit to kill daemon --- .gitignore | 1 + electric_sieve/ElectricSieve.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/.gitignore b/.gitignore index 6034057..ffb00e9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist/ MANIFEST android/ high-scores.old +local/ diff --git a/electric_sieve/ElectricSieve.py b/electric_sieve/ElectricSieve.py index a902ea0..083c267 100644 --- a/electric_sieve/ElectricSieve.py +++ b/electric_sieve/ElectricSieve.py @@ -170,6 +170,22 @@ class ElectricSieve(Game): rotated.h = rect.w return rotated + def end(self, event): + """ + Extend the parent end method to try adding a permanent quit feature in case there is a Raspbian Lite systemd autostart service running + """ + if event.type == QUIT or self.delegate.compare(event, "quit"): + if self.confirming_quit or not self.get_configuration("input", "confirm-quit"): + # If SHIFT is pressed, try permanently stopping the systemd service to get a console back in case this is running on + # Raspbian Lite + if pygame.key.get_mods() & pygame.KMOD_SHIFT: + try: + subprocess.run(["sudo", "systemctl", "stop", "scrapeboard"]) + print("Killing with permanent stop sent to systemd scrapeboard service") + except: + print("No scrapeboard system service detected, so permanent quit either failed or was unnecessary") + super().end(event) + def update(self): # Test if the level is being played if self.triangles.active: