summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Locale.hs
diff options
context:
space:
mode:
authorJoey Hess2015-12-06 14:33:22 -0400
committerJoey Hess2015-12-06 14:33:22 -0400
commit6c7ad5b021ae46be1fda3004f9c578ab2471d9aa (patch)
tree4319434104db22cc4598746eeb2d6fbf244ed7be /src/Propellor/Property/Locale.hs
parent616c6c2e2c2c7dcafa9bc72c7c1bdea650e43e43 (diff)
parent516b7cb886470c6a86d4022d7cf20a8547a98bd9 (diff)
Merge branch 'joeyconfig'
Diffstat (limited to 'src/Propellor/Property/Locale.hs')
-rw-r--r--src/Propellor/Property/Locale.hs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Propellor/Property/Locale.hs b/src/Propellor/Property/Locale.hs
index 0342a2f2..a9fb3514 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) (cmdProperty "update-locale" selectArgs)
`requires` available locale
`describe` (locale ++ " locale selected")
- deselect = cmdProperty "update-locale" vars
- `assume` NoChange
+ deselect = check isselected (cmdProperty "update-locale" vars)
`describe` (locale ++ " locale deselected")
selectArgs = zipWith (++) vars (repeat ('=':locale))
+ isselected = locale `isSelectedFor` vars
+
+isSelectedFor :: Locale -> [LocaleVariable] -> IO Bool
+locale `isSelectedFor` vars = 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).
--