diff options
| author | Joey Hess <joey@kitenet.net> | 2014-04-08 18:41:30 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-04-08 18:41:30 -0400 |
| commit | 39f3acd6e473ee25e6c37fd5c8a5b4237d34127c (patch) | |
| tree | 902458fd78162103b962b1ef730c4157f2ca5aa9 | |
| parent | 27a00f86826f7f76afc05d02c8990ac38c0802fd (diff) | |
propellor spin
| -rw-r--r-- | Propellor/Property.hs | 10 | ||||
| -rw-r--r-- | Propellor/Property/Apt.hs | 7 | ||||
| -rw-r--r-- | config-joey.hs | 2 | ||||
| -rw-r--r-- | debian/changelog | 2 |
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 |
