From 12548bae3d8feecce6a322162d91b827289ae824 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 5 Dec 2015 17:52:43 -0400 Subject: UncheckedProperty for cmdProperty et al * Properties that run an arbitrary command, such as cmdProperty and scriptProperty are converted to use UncheckedProperty, since they cannot tell on their own if the command truely made a change or not. (API Change) Transition guide: - When GHC complains about an UncheckedProperty, add: `assume` MadeChange - Since these properties used to always return MadeChange, that change is always safe to make. - Or, if you know that the command should modifiy a file, use: `changesFile` filename * A few properties have had their Result improved, for example Apt.buldDep and Apt.autoRemove now check if a change was made or not. --- src/Propellor/Property/Locale.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/Propellor/Property/Locale.hs') diff --git a/src/Propellor/Property/Locale.hs b/src/Propellor/Property/Locale.hs index c1040780..0342a2f2 100644 --- a/src/Propellor/Property/Locale.hs +++ b/src/Propellor/Property/Locale.hs @@ -24,12 +24,12 @@ type LocaleVariable = String selectedFor :: Locale -> [LocaleVariable] -> RevertableProperty NoInfo locale `selectedFor` vars = select deselect where - select = - trivial $ cmdProperty "update-locale" selectArgs + select = cmdProperty "update-locale" selectArgs + `assume` NoChange `requires` available locale `describe` (locale ++ " locale selected") - deselect = - trivial $ cmdProperty "update-locale" vars + deselect = cmdProperty "update-locale" vars + `assume` NoChange `describe` (locale ++ " locale deselected") selectArgs = zipWith (++) vars (repeat ('=':locale)) @@ -70,4 +70,6 @@ available locale = (ensureAvailable ensureUnavailable) l `presentIn` ls = any (l `isPrefix`) ls l `isPrefix` x = (l `isPrefixOf` x) || (("# " ++ l) `isPrefixOf` x) - regenerate = cmdProperty "dpkg-reconfigure" ["-f", "noninteractive", "locales"] + regenerate = cmdProperty "dpkg-reconfigure" + ["-f", "noninteractive", "locales"] + `assume` MadeChange -- cgit v1.3-2-g0d8e