diff options
| author | Joey Hess <joeyh@joeyh.name> | 2017-09-25 12:02:12 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2017-09-25 12:02:12 -0400 |
| commit | 388257ea3e738e2236f3560b960ac061993cca14 (patch) | |
| tree | 53c2e3f3b353df114c30892f5ce131b2982bb686 /src | |
| parent | 832239b3b1720da5f343be8509ebbee557dd1db5 (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')
| -rw-r--r-- | src/Propellor/Property/Apt.hs | 4 |
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) |
