diff options
author | Devaev Maxim <[email protected]> | 2018-11-06 01:55:13 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2018-11-06 01:55:13 +0300 |
commit | f0ae427d8e4bbd82653abdb8e2aef8ffe32fc732 (patch) | |
tree | 44192d6bce4cc80db95532df2888e0764f63d58d /kvmd/apps/cleanup/__init__.py | |
parent | 1ac968e92411409413ed4555eed6c2944b38de0d (diff) |
refactoring
Diffstat (limited to 'kvmd/apps/cleanup/__init__.py')
-rw-r--r-- | kvmd/apps/cleanup/__init__.py | 40 |
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") |