From e7c7adc0c4cdc838eada045334b038c7f01dcc56 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 7 Mar 2016 21:51:25 -0400 Subject: add unsupportedOS --- src/Propellor/Property.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/Propellor/Property.hs') 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 -- cgit v1.3-2-g0d8e