From 277adba731d66e642bc8f5bdfd37c3590ec40ec4 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 5 Dec 2015 19:25:52 -0400 Subject: make Locale.selectedFor check contents of file to decide if it needs to make a change --- src/Propellor/Property/Locale.hs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Propellor/Property/Locale.hs b/src/Propellor/Property/Locale.hs index 0342a2f2..15babf20 100644 --- a/src/Propellor/Property/Locale.hs +++ b/src/Propellor/Property/Locale.hs @@ -24,14 +24,19 @@ type LocaleVariable = String selectedFor :: Locale -> [LocaleVariable] -> RevertableProperty NoInfo locale `selectedFor` vars = select deselect where - select = cmdProperty "update-locale" selectArgs - `assume` NoChange + select = check (not <$> isselected) select' `requires` available locale `describe` (locale ++ " locale selected") - deselect = cmdProperty "update-locale" vars - `assume` NoChange + select' = cmdProperty "update-locale" selectArgs + `assume` MadeChange + deselect = check isselected deselect' `describe` (locale ++ " locale deselected") + deselect' = cmdProperty "update-locale" vars + `assume` MadeChange selectArgs = zipWith (++) vars (repeat ('=':locale)) + isselected = do + ls <- catchDefaultIO [] $ lines <$> readFile "/etc/default/locale" + return $ and $ map (\v -> v ++ "=" ++ locale `elem` ls) vars -- | Ensures a locale is generated (or, if reverted, ensure it's not). -- -- cgit v1.2.3