diff options
| author | Joey Hess <joeyh@joeyh.name> | 2015-12-06 14:33:22 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2015-12-06 14:33:22 -0400 |
| commit | 6c7ad5b021ae46be1fda3004f9c578ab2471d9aa (patch) | |
| tree | 4319434104db22cc4598746eeb2d6fbf244ed7be /src/Propellor/Property/Locale.hs | |
| parent | 616c6c2e2c2c7dcafa9bc72c7c1bdea650e43e43 (diff) | |
| parent | 516b7cb886470c6a86d4022d7cf20a8547a98bd9 (diff) | |
Merge branch 'joeyconfig'
Diffstat (limited to 'src/Propellor/Property/Locale.hs')
| -rw-r--r-- | src/Propellor/Property/Locale.hs | 13 |
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). -- |
