summaryrefslogtreecommitdiff
path: root/Property
diff options
context:
space:
mode:
authorJoey Hess2014-03-30 01:13:53 -0400
committerJoey Hess2014-03-30 01:13:53 -0400
commit8684db8bbf886d5dc41523e2b79df54aa1702cf8 (patch)
tree168828f2920a74c52e6ec747970f2c603ce39701 /Property
parente812acce3e46b7dd259783fc28c2c65d4ad7a228 (diff)
run apt noninteractively
Diffstat (limited to 'Property')
-rw-r--r--Property/Apt.hs19
1 files changed, 13 insertions, 6 deletions
diff --git a/Property/Apt.hs b/Property/Apt.hs
index 98dc3541..c326170c 100644
--- a/Property/Apt.hs
+++ b/Property/Apt.hs
@@ -47,24 +47,31 @@ stdSourcesList = setSourcesList . debCdn
setSourcesList :: [Line] -> Property
setSourcesList ls = fileHasContent sourcesList ls `onChange` update
+runApt :: [CommandParam] -> Property
+runApt ps = cmdProperty' "apt-get" ps env
+ where
+ env =
+ [ ("DEBIAN_FRONTEND", "noninteractive")
+ , ("APT_LISTCHANGES_FRONTEND", "none")
+ ]
+
update :: Property
-update = cmdProperty "apt-get" [Param "update"]
+update = runApt [Param "update"]
upgrade :: Property
-upgrade = cmdProperty "apt-get" [Params "-y safe-upgrade"]
+upgrade = runApt [Params "-y safe-upgrade"]
type Package = String
installed :: [Package] -> Property
installed ps = check (isInstallable ps) go
where
- go = cmdProperty "apt-get" $
- [Param "-y", Param "install"] ++ map Param ps
+ go = runApt $ [Param "-y", Param "install"] ++ map Param ps
removed :: [Package] -> Property
removed ps = check (or <$> isInstalled ps) go
where
- go = cmdProperty "apt-get" $ [Param "-y", Param "remove"] ++ map Param ps
+ go = runApt $ [Param "-y", Param "remove"] ++ map Param ps
isInstallable :: [Package] -> IO Bool
isInstallable ps = do
@@ -85,4 +92,4 @@ isInstalled ps = catMaybes . map parse . lines
| otherwise = Nothing
autoRemove :: Property
-autoRemove = cmdProperty "apt-get" [Param "-y", Param "autoremove"]
+autoRemove = runApt [Param "-y", Param "autoremove"]