diff --git a/blink/51-blink.rules b/blink/51-blink.rules new file mode 100644 index 00000000..6eb37922 --- /dev/null +++ b/blink/51-blink.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="27b8", ENV{ID_MODEL_ID}=="01ed", MODE="0660", OWNER="2626", GROUP="598" RUN{program}="/bin/systemctl start blinkd" diff --git a/blink/blinkd.py b/blink/blinkd.py new file mode 100755 index 00000000..656624ff --- /dev/null +++ b/blink/blinkd.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + + +from multiprocessing import cpu_count +from re import findall +from subprocess import check_call +from time import sleep + + +def cpu_load(): + with open('/proc/loadavg', 'r') as f: + load = float(f.read().split()[0]) + cores = float(cpu_count()) + return load/cores + exit(1) + + +def free_memory(): + with open('/proc/meminfo', 'r') as f: + meminfo = f.readlines() + mem = float(findall('(\d+) kB', meminfo[0])[0]) + frm = float(findall('(\d+) kB', meminfo[1])[0]) + return 1 - frm / mem + exit(1) + + +def blink(n): + check_call(['blink1-tool', '-t 200', '-m 0', '--blink', str(n), '-q']) + + +def show(p): + if p < 0.2: + check_call(['blink1-tool', '--blue', '-m 0', '-q']) + elif p < 0.4: + check_call(['blink1-tool', '--green', '-m 0', '-q']) + elif p < 0.6: + check_call(['blink1-tool', '--yellow', '-m 0', '-q']) + elif p < 0.8: + check_call(['blink1-tool', '--rgb', 'FF8800', '-m 0', '-q']) + else: + check_call(['blink1-tool', '--red', '-m 0', '-q']) + sleep(5) + + +if __name__ == '__main__': + while True: + blink(5) + load = cpu_load() + show(load) + blink(2) + frm = free_memory() + show(frm) diff --git a/blink/blinkd.service b/blink/blinkd.service new file mode 100644 index 00000000..e1f61c2b --- /dev/null +++ b/blink/blinkd.service @@ -0,0 +1,7 @@ +[Unit] +Description=blinkd + +[Service] +User=it +Group=edv +ExecStart=/lib/udev/blinkd.py diff --git a/install.sh b/install.sh index f930bf39..dfc40f93 100755 --- a/install.sh +++ b/install.sh @@ -112,5 +112,7 @@ install_data misc_systemd_units/named.service "$DESTDIR$systemdunitdi install_data misc_systemd_units/tonerlow-cupsd.service "$DESTDIR$systemdunitdir/tonerlow-cupsd.service" install_data misc_systemd_units/baucamhttpd.service "$DESTDIR$systemdunitdir/baucamhttpd.service" install_data misc_systemd_units/getcams.service "$DESTDIR$systemdunitdir/getcams.service" - +install_exec blink/blinkd.py "$DESTDUR$udev_helperdir/blinkd.py" +install_data blink/blinkd.service "$DESTDIR$systemdunitdir/blinkd.service" +install_data blink/51-blink.rules "$DESTDIR$udev_rulesdir/51-blink.rules" exit