summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2014-04-08 18:41:30 -0400
committerJoey Hess2014-04-08 18:41:30 -0400
commit39f3acd6e473ee25e6c37fd5c8a5b4237d34127c (patch)
tree902458fd78162103b962b1ef730c4157f2ca5aa9
parent27a00f86826f7f76afc05d02c8990ac38c0802fd (diff)
propellor spin
-rw-r--r--Propellor/Property.hs10
-rw-r--r--Propellor/Property/Apt.hs7
-rw-r--r--config-joey.hs2
-rw-r--r--debian/changelog2
4 files changed, 18 insertions, 3 deletions
diff --git a/Propellor/Property.hs b/Propellor/Property.hs
index e7ec704d..c2a8972e 100644
--- a/Propellor/Property.hs
+++ b/Propellor/Property.hs
@@ -33,6 +33,16 @@ combineProperties desc ps = Property desc $ go ps NoChange
FailedChange -> return FailedChange
_ -> go ls (r <> rs)
+-- | Combines together two properties, resulting in one property
+-- that ensures the first, and if the first succeeds, ensures the second.
+-- The property uses the description of the first property.
+before :: Property -> Property -> Property
+p1 `before` p2 = Property (propertyDesc p1) $ do
+ r <- ensureProperty p1
+ case r of
+ FailedChange -> return FailedChange
+ _ -> ensureProperty p2
+
-- | Makes a perhaps non-idempotent Property be idempotent by using a flag
-- file to indicate whether it has run before.
-- Use with caution.
diff --git a/Propellor/Property/Apt.hs b/Propellor/Property/Apt.hs
index 8bbb1b19..87c69dae 100644
--- a/Propellor/Property/Apt.hs
+++ b/Propellor/Property/Apt.hs
@@ -147,9 +147,12 @@ autoRemove = runApt ["-y", "autoremove"]
-- | Enables unattended upgrades. Revert to disable.
unattendedUpgrades :: RevertableProperty
-unattendedUpgrades = RevertableProperty (go True) (go False)
+unattendedUpgrades = RevertableProperty enable disable
where
- go enabled = (if enabled then installed else removed) ["unattended-upgrades"]
+ enable = setup True `before` installed ["cron"]
+ disable = setup False
+
+ setup enabled = (if enabled then installed else removed) ["unattended-upgrades"]
`onChange` reConfigure "unattended-upgrades"
[("unattended-upgrades/enable_auto_updates" , "boolean", v)]
`describe` ("unattended upgrades " ++ v)
diff --git a/config-joey.hs b/config-joey.hs
index b431a4b0..b7d9cf28 100644
--- a/config-joey.hs
+++ b/config-joey.hs
@@ -61,7 +61,7 @@ host _ = Nothing
-- | This is where Docker containers are set up. A container
-- can vary by hostname where it's used, or be the same everywhere.
container :: HostName -> Docker.ContainerName -> Maybe (Docker.Container)
-container parenthost name
+container _parenthost name
-- Simple web server, publishing the outside host's /var/www
| name == "webserver" = Just $ Docker.containerFrom
(image $ System (Debian Unstable) "amd64")
diff --git a/debian/changelog b/debian/changelog
index 365485a3..4b04fb30 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
propellor (0.2.4) UNRELEASED; urgency=medium
* ipv6to4: Ensure interface is brought up automatically on boot.
+ * Enabling unattended upgrades now ensures that cron is installed and
+ running to perform them.
-- Joey Hess <joeyh@debian.org> Tue, 08 Apr 2014 18:07:12 -0400