summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog7
-rw-r--r--propellor.cabal3
-rw-r--r--src/Propellor/Property/Debootstrap.hs10
-rw-r--r--src/Propellor/Property/Service.hs17
4 files changed, 18 insertions, 19 deletions
diff --git a/debian/changelog b/debian/changelog
index 827c7986..68564473 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 <id@joeyh.name> Sun, 07 Dec 2014 17:08:55 -0400
+ -- Joey Hess <id@joeyh.name> Tue, 09 Dec 2014 00:05:09 -0400
propellor (1.1.0) unstable; urgency=medium
diff --git a/propellor.cabal b/propellor.cabal
index fb109649..b0ead4b4 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 <id@joeyh.name>
@@ -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 0181d58a..0a7308ff 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 14e769d0..93e959c6 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