summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Locale.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Propellor/Property/Locale.hs')
-rw-r--r--src/Propellor/Property/Locale.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Propellor/Property/Locale.hs b/src/Propellor/Property/Locale.hs
index b7cf242c..53091fc9 100644
--- a/src/Propellor/Property/Locale.hs
+++ b/src/Propellor/Property/Locale.hs
@@ -4,6 +4,7 @@ module Propellor.Property.Locale where
import Propellor.Base
import Propellor.Property.File
+import qualified Propellor.Property.Apt as Apt
import Data.List (isPrefixOf)
@@ -50,7 +51,8 @@ locale `isSelectedFor` vars = do
-- Per Debian bug #684134 we cannot ensure a locale is generated by means of
-- Apt.reConfigure. So localeAvailable edits /etc/locale.gen manually.
available :: Locale -> RevertableProperty DebianLike DebianLike
-available locale = ensureAvailable <!> ensureUnavailable
+available locale = ensureAvailable `requires` Apt.installed ["locales"]
+ <!> ensureUnavailable
where
f = "/etc/locale.gen"
desc = (locale ++ " locale generated")
@@ -61,7 +63,7 @@ available locale = ensureAvailable <!> ensureUnavailable
then ensureProperty w $
fileProperty desc (foldr uncomment []) f
`onChange` regenerate
- else return FailedChange -- locale unavailable for generation
+ else error $ "locale " ++ locale ++ " is not present in /etc/locale.gen, even in commented out form; cannot generate"
ensureUnavailable :: Property DebianLike
ensureUnavailable = tightenTargets $
fileProperty (locale ++ " locale not generated") (foldr comment []) f