Compare commits

...

4 commits

4 changed files with 35 additions and 2 deletions

View file

@ -5,6 +5,18 @@ All notable changes to rattail-fabric2 will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## v0.4.6 (2025-09-06)
### Fix
- add `apt.is_installed()` function
## v0.4.5 (2025-02-01)
### Fix
- purge email settings for wuttjamaican also
## v0.4.4 (2024-10-03) ## v0.4.4 (2024-10-03)
### Fix ### Fix

View file

@ -6,7 +6,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "rattail-fabric2" name = "rattail-fabric2"
version = "0.4.4" version = "0.4.6"
description = "Fabric (v2) Utilities for Rattail" description = "Fabric (v2) Utilities for Rattail"
readme = "README.md" readme = "README.md"
authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] authors = [{name = "Lance Edgar", email = "lance@edbob.org"}]

View file

@ -2,7 +2,7 @@
################################################################################ ################################################################################
# #
# Rattail -- Retail Software Framework # Rattail -- Retail Software Framework
# Copyright © 2010-2018 Lance Edgar # Copyright © 2010-2025 Lance Edgar
# #
# This file is part of Rattail. # This file is part of Rattail.
# #
@ -44,6 +44,19 @@ def install(c, *packages, **kwargs):
frontend, target, force_yes, ' '.join(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): def purge(c, *packages):
""" """
Uninstall and purge config for given packages Uninstall and purge config for given packages

View file

@ -108,6 +108,14 @@ def delete_email_recipients(c, dbname):
""" """
Purge all email recipient settings for the given database. Purge all email recipient settings for the given database.
""" """
# purge new-style for wuttjamaican
postgresql.sql(c, "delete from setting where name like 'rattail.email.%.sender';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.email.%.to';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.email.%.cc';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.email.%.bcc';", database=dbname)
# purge old-style for rattail
postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.from';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.to';", database=dbname) postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.to';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.cc';", database=dbname) postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.cc';", database=dbname)
postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.bcc';", database=dbname) postgresql.sql(c, "delete from setting where name like 'rattail.mail.%.bcc';", database=dbname)