From 8684db8bbf886d5dc41523e2b79df54aa1702cf8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 30 Mar 2014 01:13:53 -0400 Subject: run apt noninteractively --- Property/Apt.hs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'Property') 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"] -- cgit v1.3-2-g0d8e