summaryrefslogtreecommitdiff
path: root/src/Propellor/Property
diff options
context:
space:
mode:
authorJoey Hess2017-09-25 12:02:12 -0400
committerJoey Hess2017-09-25 12:02:12 -0400
commit388257ea3e738e2236f3560b960ac061993cca14 (patch)
tree53c2e3f3b353df114c30892f5ce131b2982bb686 /src/Propellor/Property
parent832239b3b1720da5f343be8509ebbee557dd1db5 (diff)
Apt.isInstalled: Fix handling of packages that are not known at all to apt.
getInstallStatus returns [] when passed only such packages, and all of that list == IsInstalled. So also check that the list contains every package queried.
Diffstat (limited to 'src/Propellor/Property')
-rw-r--r--src/Propellor/Property/Apt.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Propellor/Property/Apt.hs b/src/Propellor/Property/Apt.hs
index 5630d83a..68ebe89e 100644
--- a/src/Propellor/Property/Apt.hs
+++ b/src/Propellor/Property/Apt.hs
@@ -331,7 +331,9 @@ isInstalled :: Package -> IO Bool
isInstalled p = isInstalled' [p]
isInstalled' :: [Package] -> IO Bool
-isInstalled' ps = all (== IsInstalled) <$> getInstallStatus ps
+isInstalled' ps = do
+ is <- getInstallStatus ps
+ return $ all (== IsInstalled) is && length is == length ps
data InstallStatus = IsInstalled | NotInstalled
deriving (Show, Eq)