diff --git a/debian/changelog b/debian/changelog index 827c798..6856447 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,12 @@ -propellor (1.1.1) UNRELEASED; urgency=medium +propellor (1.2.0) unstable; urgency=medium * Display a warning when ensureProperty is used on a property which has Info and is so prevented from propigating it. + * Removed boolProperty; instead the new toResult can be used. (API change) + * Include Propellor.Property.OS, which was accidentially left out of the + cabal file in the last release. - -- Joey Hess Sun, 07 Dec 2014 17:08:55 -0400 + -- Joey Hess Tue, 09 Dec 2014 00:05:09 -0400 propellor (1.1.0) unstable; urgency=medium diff --git a/propellor.cabal b/propellor.cabal index fb10964..b0ead4b 100644 --- a/propellor.cabal +++ b/propellor.cabal @@ -1,5 +1,5 @@ Name: propellor -Version: 1.1.0 +Version: 1.2.0 Cabal-Version: >= 1.6 License: BSD3 Maintainer: Joey Hess @@ -90,6 +90,7 @@ Library Propellor.Property.Nginx Propellor.Property.Obnam Propellor.Property.OpenId + Propellor.Property.OS Propellor.Property.Postfix Propellor.Property.Prosody Propellor.Property.Reboot diff --git a/src/Propellor/Property/Debootstrap.hs b/src/Propellor/Property/Debootstrap.hs index 0181d58..0a7308f 100644 --- a/src/Propellor/Property/Debootstrap.hs +++ b/src/Propellor/Property/Debootstrap.hs @@ -148,18 +148,16 @@ sourceInstall = property "debootstrap installed from source" (liftIO sourceInsta `requires` arInstalled perlInstalled :: Property -perlInstalled = check (not <$> inPath "perl") $ property "perl installed" $ do - v <- liftIO $ firstM id +perlInstalled = check (not <$> inPath "perl") $ property "perl installed" $ + liftIO $ toResult . isJust <$> firstM id [ yumInstall "perl" ] - if isJust v then return MadeChange else return FailedChange arInstalled :: Property -arInstalled = check (not <$> inPath "ar") $ property "ar installed" $ do - v <- liftIO $ firstM id +arInstalled = check (not <$> inPath "ar") $ property "ar installed" $ + liftIO $ toResult . isJust <$> firstM id [ yumInstall "binutils" ] - if isJust v then return MadeChange else return FailedChange yumInstall :: String -> IO Bool yumInstall p = boolSystem "yum" [Param "-y", Param "install", Param p] diff --git a/src/Propellor/Property/Service.hs b/src/Propellor/Property/Service.hs index 14e769d..93e959c 100644 --- a/src/Propellor/Property/Service.hs +++ b/src/Propellor/Property/Service.hs @@ -13,19 +13,16 @@ type ServiceName = String -- we can do is try to start the service, and if it fails, assume -- this means it's already running. running :: ServiceName -> Property -running svc = property ("running " ++ svc) $ do - void $ ensureProperty $ - scriptProperty ["service " ++ shellEscape svc ++ " start >/dev/null 2>&1 || true"] - return NoChange +running = signaled "start" "running" restarted :: ServiceName -> Property -restarted svc = property ("restarted " ++ svc) $ do - void $ ensureProperty $ - scriptProperty ["service " ++ shellEscape svc ++ " restart >/dev/null 2>&1 || true"] - return NoChange +restarted = signaled "restart" "restarted" reloaded :: ServiceName -> Property -reloaded svc = property ("reloaded " ++ svc) $ do +reloaded = signaled "reload" "reloaded" + +signaled :: String -> Desc -> ServiceName -> Property +signaled cmd desc svc = property (desc ++ " " ++ svc) $ do void $ ensureProperty $ - scriptProperty ["service " ++ shellEscape svc ++ " reload >/dev/null 2>&1 || true"] + scriptProperty ["service " ++ shellEscape svc ++ " " ++ cmd ++ " >/dev/null 2>&1 || true"] return NoChange