From b22201e36b608ba38f4d741268d04e7de3a966b8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 9 Dec 2014 00:34:24 -0400 Subject: [PATCH] Fix Apache.siteEnabled to update the config file and reload apache when configuration has changed. --- config-joey.hs | 14 ++++++++++++++ debian/changelog | 2 ++ src/Propellor/Property/Apache.hs | 11 +++++++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/config-joey.hs b/config-joey.hs index 9e0cf90..7895480 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -76,6 +76,20 @@ darkstar = host "darkstar.kitenet.net" & Apt.buildDep ["git-annex"] `period` Daily & Docker.configured ! Docker.docked gitAnnexAndroidDev + & website "foo" + +website :: String -> RevertableProperty +website hn = Apache.siteEnabled hn apachecfg + where + apachecfg = [ "" + , "DocumentRoot /tmp/xx" + , "" + , " Options Indexes FollowSymLinks Multiviews" + , " Order allow,deny" + , Apache.allowAll + , "" + , "" + ] clam :: Host clam = standardSystem "clam.kitenet.net" Unstable "amd64" diff --git a/debian/changelog b/debian/changelog index 6856447..c28989d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ propellor (1.2.0) unstable; urgency=medium * 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. + * Fix Apache.siteEnabled to update the config file and reload apache when + configuration has changed. -- Joey Hess Tue, 09 Dec 2014 00:05:09 -0400 diff --git a/src/Propellor/Property/Apache.hs b/src/Propellor/Property/Apache.hs index 1d9c35c..1ce187d 100644 --- a/src/Propellor/Property/Apache.hs +++ b/src/Propellor/Property/Apache.hs @@ -11,12 +11,15 @@ type ConfigFile = [String] siteEnabled :: HostName -> ConfigFile -> RevertableProperty siteEnabled hn cf = RevertableProperty enable disable where - enable = check (not <$> isenabled) $ - cmdProperty "a2ensite" ["--quiet", hn] - `describe` ("apache site enabled " ++ hn) - `requires` siteAvailable hn cf + enable = combineProperties ("apache site enabled " ++ hn) + [ siteAvailable hn cf `requires` installed `onChange` reloaded + , check (not <$> isenabled) $ + cmdProperty "a2ensite" ["--quiet", hn] + `requires` installed + `onChange` reloaded + ] disable = combineProperties ("apache site disabled " ++ hn) (map File.notPresent (siteCfg hn))