From df8bf03acf82c701713630857beec443d5291a17 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 29 Feb 2016 17:58:50 -0400 Subject: apt upgrade improvements * Apt.upgrade: Run dpkg --configure -a first, to recover from interrupted upgrades. * Apt: Add safeupgrade. --- src/Propellor/Property/Apt.hs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/Propellor') 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 -- cgit v1.2.3