diff options
Diffstat (limited to 'src/Propellor/Property.hs')
| -rw-r--r-- | src/Propellor/Property.hs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs index fe99a3fd..b6b8dc0d 100644 --- a/src/Propellor/Property.hs +++ b/src/Propellor/Property.hs @@ -20,6 +20,7 @@ module Propellor.Property ( , property , ensureProperty , withOS + , unsupportedOS , makeChange , noChange , doNothing @@ -256,10 +257,18 @@ isNewerThan x y = do -- > myproperty = withOS "foo installed" $ \o -> case o of -- > (Just (System (Debian suite) arch)) -> ... -- > (Just (System (Buntish release) arch)) -> ... --- > Nothing -> ... +-- > Nothing -> unsupportedOS withOS :: Desc -> (Maybe System -> Propellor Result) -> Property NoInfo withOS desc a = property desc $ a =<< getOS +-- | Throws an error, for use in `withOS` when a property is lacking +-- support for an OS. +unsupportedOS :: Propellor a +unsupportedOS = go =<< getOS + where + go Nothing = error "Unknown host OS is not supported by this property." + go (Just o) = error $ "This property is not implemented for " ++ show o + -- | Undoes the effect of a RevertableProperty. revert :: RevertableProperty i -> RevertableProperty i revert (RevertableProperty p1 p2) = RevertableProperty p2 p1 |
