From 4bafdd690152e1dfc6c1d9220300c68e75ed4f2c Mon Sep 17 00:00:00 2001 From: tyjak Date: Wed, 24 Jul 2019 01:15:28 +0200 Subject: [PATCH] Added Yay backend for updates script (#758) --- i3pystatus/updates/yay.py | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 i3pystatus/updates/yay.py diff --git a/i3pystatus/updates/yay.py b/i3pystatus/updates/yay.py new file mode 100644 index 0000000..7677fff --- /dev/null +++ b/i3pystatus/updates/yay.py @@ -0,0 +1,44 @@ +from i3pystatus.core.command import run_through_shell +from i3pystatus.updates import Backend + + +class Yay(Backend): + """ + This module counts the available updates using yay. + By default it will only count aur packages. Thus it can be used with the + pacman backend like this: + + .. code-block:: python + + from i3pystatus.updates import pacman, yay + status.register("updates", backends = \ +[pacman.Pacman(), yay.Yay()]) + + To count both pacman and aur packages, pass False in the constructor: + + .. code-block:: python + + from i3pystatus.updates import yay + status.register("updates", backends = [yay.Yay(False)]) + """ + + def __init__(self, aur_only=True): + self.aur_only = aur_only + + @property + def updates(self): + if(self.aur_only): + command = ["yay", "-Qua"] + else: + command = ["yay", "-Qu"] + checkupdates = run_through_shell(command) + out = checkupdates.out + return out.count("\n"), out + +Backend = Yay + +if __name__ == "__main__": + """ + Call this module directly; Print the update count and notification body. + """ + print("Updates: {}\n\n{}".format(*Backend().updates))