summaryrefslogtreecommitdiff
path: root/.local/bin/lemonbar/modules/updates.py
diff options
context:
space:
mode:
authorAndrew Guschin <saintruler@gmail.com>2021-05-10 14:44:07 +0400
committerAndrew Guschin <saintruler@gmail.com>2021-05-10 14:44:07 +0400
commit40ce35bd2f379f2c30e51173752926f8c620ffd6 (patch)
treed8bb4e1651758edd2af52e4b0a4b40c3c0f13c0e /.local/bin/lemonbar/modules/updates.py
parent2f6db370d4086eca956279ea41cd305b474f9caf (diff)
Changed window manager to bspwm and added custom config for lemonbar
Diffstat (limited to '.local/bin/lemonbar/modules/updates.py')
-rw-r--r--.local/bin/lemonbar/modules/updates.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/.local/bin/lemonbar/modules/updates.py b/.local/bin/lemonbar/modules/updates.py
new file mode 100644
index 0000000..67c8e93
--- /dev/null
+++ b/.local/bin/lemonbar/modules/updates.py
@@ -0,0 +1,48 @@
+from subprocess import run as _run
+from time import time
+
+
+def run(command):
+ return _run(command.split(), capture_output=True).stdout.decode().strip()
+
+
+def pacman_count():
+ cnt = 0
+ for line in run('pacman -Qu').split("\n"):
+ if "[ignored]" not in line:
+ cnt += 1
+ return cnt
+
+
+def yay_count():
+ cnt = 0
+ for line in run('yay -Qau').split("\n"):
+ if "[ignored]" not in line:
+ cnt += 1
+ return cnt
+
+
+def callback():
+ tmp_file = "/tmp/lemonbar/updates"
+ try:
+ with open(tmp_file) as f:
+ data = f.read().split()
+ except FileNotFoundError:
+ data = ''
+
+ try:
+ timestamp = float(data[0])
+ except (ValueError, IndexError):
+ timestamp = 0
+
+ if time() - timestamp > 900:
+ pacman = pacman_count()
+ aur = yay_count()
+ with open(tmp_file, "w") as f:
+ f.write(f"{time()} {pacman} {aur}")
+ else:
+ pacman = data[1]
+ aur = data[2]
+
+ return f"UPD: {pacman}+{aur}"
+