summaryrefslogtreecommitdiff
path: root/kvmd/apps/cleanup/__init__.py
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2018-11-06 01:55:13 +0300
committerDevaev Maxim <[email protected]>2018-11-06 01:55:13 +0300
commitf0ae427d8e4bbd82653abdb8e2aef8ffe32fc732 (patch)
tree44192d6bce4cc80db95532df2888e0764f63d58d /kvmd/apps/cleanup/__init__.py
parent1ac968e92411409413ed4555eed6c2944b38de0d (diff)
refactoring
Diffstat (limited to 'kvmd/apps/cleanup/__init__.py')
-rw-r--r--kvmd/apps/cleanup/__init__.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/kvmd/apps/cleanup/__init__.py b/kvmd/apps/cleanup/__init__.py
new file mode 100644
index 00000000..60446c2b
--- /dev/null
+++ b/kvmd/apps/cleanup/__init__.py
@@ -0,0 +1,40 @@
+import os
+import subprocess
+import time
+
+from ...application import init
+from ...logging import get_logger
+
+from ... import gpio
+
+
+# =====
+def main() -> None:
+ config = init()
+ logger = get_logger(0)
+
+ logger.info("Cleaning up ...")
+ with gpio.bcm():
+ for (name, pin) in [
+ ("hid_reset", config["hid"]["pinout"]["reset"]),
+ ("msd_target", config["msd"]["pinout"]["target"]),
+ ("msd_reset", config["msd"]["pinout"]["reset"]),
+ ("atx_power_switch", config["atx"]["pinout"]["power_switch"]),
+ ("atx_reset_switch", config["atx"]["pinout"]["reset_switch"]),
+ ("streamer_cap", config["streamer"]["pinout"]["cap"]),
+ ("streamer_conv", config["streamer"]["pinout"]["conv"]),
+ ]:
+ if pin > 0:
+ logger.info("Writing value=0 to pin=%d (%s)", pin, name)
+ gpio.set_output(pin, initial=False)
+
+ streamer = os.path.basename(config["streamer"]["cmd"][0])
+ logger.info("Trying to find and kill %r ...", streamer)
+ try:
+ subprocess.check_output(["killall", streamer], stderr=subprocess.STDOUT)
+ time.sleep(3)
+ subprocess.check_output(["killall", "-9", streamer], stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError:
+ pass
+
+ logger.info("Bye-bye")