Source code for i3pystatus.updates.yay
from i3pystatus.core.command import run_through_shell
from i3pystatus.updates import Backend
[docs]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))