diff options
| -rw-r--r-- | debian/changelog | 8 | ||||
| -rw-r--r-- | src/Propellor/Property/Apt.hs | 23 |
2 files changed, 28 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog index 6d85083b..c5b27741 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +propellor (2.16.1) UNRELEASED; urgency=medium + + * Apt.upgrade: Run dpkg --configure -a first, to recover from + interrupted upgrades. + * Apt: Add safeupgrade. + + -- Joey Hess <id@joeyh.name> Mon, 29 Feb 2016 17:58:08 -0400 + propellor (2.16.0) unstable; urgency=medium * Obnam: Only let one backup job run at a time when a host has multiple diff --git a/src/Propellor/Property/Apt.hs b/src/Propellor/Property/Apt.hs index f5d08c1d..bb444463 100644 --- a/src/Propellor/Property/Apt.hs +++ b/src/Propellor/Property/Apt.hs @@ -123,10 +123,27 @@ update = runApt ["update"] `assume` MadeChange `describe` "apt update" +-- | Have apt upgrade packages, adding new packages and removing old as +-- necessary. upgrade :: Property NoInfo -upgrade = runApt ["-y", "dist-upgrade"] - `assume` MadeChange - `describe` "apt dist-upgrade" +upgrade = upgrade' "dist-upgrade" + +upgrade' :: String -> Property NoInfo +upgrade' p = combineProperties ("apt " ++ p) + [ runApt ["-y", p] + `assume` MadeChange + , dpkgConfigured + ] + +-- | Have apt upgrade packages, but never add new packages or remove +-- old packages. Not suitable for upgrading acrocess major versions +-- of the distribution. +safeUpgrade :: Property NoInfo +safeUpgrade = upgrade' "upgrade" + +dpkgConfigured :: Property NoInfo +dpkgConfigured = cmdProperty "dpkg" ["--confugure", "--pending"] + `describe` "dpkg configured pending" type Package = String |
