From 47ec0c67ca07efe718f9a4940f3301020dbf1bf0 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sat, 6 Sep 2025 16:29:11 -0500 Subject: [PATCH] fix: add `apt.is_installed()` function --- rattail_fabric2/apt.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rattail_fabric2/apt.py b/rattail_fabric2/apt.py index e685c5a..1dd8014 100644 --- a/rattail_fabric2/apt.py +++ b/rattail_fabric2/apt.py @@ -2,7 +2,7 @@ ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2018 Lance Edgar +# Copyright © 2010-2025 Lance Edgar # # This file is part of Rattail. # @@ -44,6 +44,19 @@ def install(c, *packages, **kwargs): frontend, target, force_yes, ' '.join(packages)), **kwargs) +def is_installed(c, package): + """ + Check if the given APT package is installed. + + :param c: Fabric connection. + + :param package: Name of package to be checked. + + :returns: ``True`` if package is installed, else ``False``. + """ + return c.run(f"dpkg-query -s {package}", warn=True).ok + + def purge(c, *packages): """ Uninstall and purge config for given packages