summaryrefslogtreecommitdiff
path: root/src/Propellor/Property.hs
diff options
context:
space:
mode:
authorJoey Hess2019-01-18 02:19:06 -0400
committerJoey Hess2019-01-18 02:19:18 -0400
commitb9d9333e030ac59ea11d435b7e2e4758daff4b4a (patch)
tree10b3e70c5265c0ca30ee45309744f836f28cf40a /src/Propellor/Property.hs
parent7ca95fd6441e1ebad2c475d6926ee93d211219d8 (diff)
fix withOS type level bug
withOS had a type level bug that allowed ensureProperty to be used inside it with a Property that does not match the type of the withOS itself. Propellor.Property.Cron.runPropellor is a Property DebianLike; it was incorrectly a Property UnixLike before and that wrong type was hidden by the withOS bug. This commit was sponsored by Jack Hill on Patreon.
Diffstat (limited to 'src/Propellor/Property.hs')
-rw-r--r--src/Propellor/Property.hs10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs
index 8c0a5859..cb2f01a8 100644
--- a/src/Propellor/Property.hs
+++ b/src/Propellor/Property.hs
@@ -330,15 +330,9 @@ pickOS a b = c `addChildren` [toChildProperty a, toChildProperty b]
withOS
:: (SingI metatypes)
=> Desc
- -> (OuterMetaTypesWitness '[] -> Maybe System -> Propellor Result)
+ -> (OuterMetaTypesWitness metatypes -> Maybe System -> Propellor Result)
-> Property (MetaTypes metatypes)
-withOS desc a = property desc $ a dummyoutermetatypes =<< getOS
- where
- -- Using this dummy value allows ensureProperty to be used
- -- even though the inner property probably doesn't target everything
- -- that the outer withOS property targets.
- dummyoutermetatypes :: OuterMetaTypesWitness ('[])
- dummyoutermetatypes = OuterMetaTypesWitness sing
+withOS desc a = property' desc $ \w -> a w =<< getOS
-- | A property that always fails with an unsupported OS error.
unsupportedOS :: Property UnixLike