propellor spin
This commit is contained in:
parent
5c75e5ec6c
commit
96f07ef513
|
@ -3,17 +3,21 @@ module Propellor.Property.Apache where
|
|||
import Propellor
|
||||
import qualified Propellor.Property.File as File
|
||||
import qualified Propellor.Property.Apt as Apt
|
||||
import qualified Propellor.Property.Service as Service
|
||||
|
||||
type ConfigFile = [String]
|
||||
|
||||
siteEnabled :: HostName -> ConfigFile -> RevertableProperty
|
||||
siteEnabled hn cf = RevertableProperty enable disable
|
||||
where
|
||||
enable = siteAvailable hn cf
|
||||
`onChange` cmdProperty "a2ensite" ["--quiet", hn]
|
||||
`requires` Apt.installed ["apache2"]
|
||||
enable = cmdProperty "a2ensite" ["--quiet", hn]
|
||||
`requires` siteAvailable hn cf
|
||||
`requires` installed
|
||||
`onChange` reloaded
|
||||
disable = File.notPresent (siteCfg hn)
|
||||
`onChange` cmdProperty "a2dissite" ["--quiet", hn]
|
||||
`requires` installed
|
||||
`onChange` reloaded
|
||||
|
||||
siteAvailable :: HostName -> ConfigFile -> Property
|
||||
siteAvailable hn cf = siteCfg hn `File.hasContent` (comment:cf)
|
||||
|
@ -21,8 +25,24 @@ siteAvailable hn cf = siteCfg hn `File.hasContent` (comment:cf)
|
|||
where
|
||||
comment = "# deployed with propellor, do not modify"
|
||||
|
||||
siteCfg :: HostName -> FilePath
|
||||
siteCfg hn = "/etc/apache2/sites-available/" ++ hn ++ ".conf"
|
||||
modEnabled :: String -> RevertableProperty
|
||||
modEnabled modname = RevertableProperty enable disable
|
||||
where
|
||||
enable = cmdProperty "a2enmod" ["--quiet", modname]
|
||||
`requires` installed
|
||||
`onChange` reloaded
|
||||
disable = cmdProperty "a2dismod" ["--quiet", modname]
|
||||
`requires` installed
|
||||
`onChange` reloaded
|
||||
|
||||
restart :: Property
|
||||
restart = cmdProperty "service" ["apache2", "restart"]
|
||||
siteCfg :: HostName -> FilePath
|
||||
siteCfg hn = "/etc/apache2/sites-available/" ++ hn
|
||||
|
||||
installed :: Property
|
||||
installed = Apt.installed ["apache2"]
|
||||
|
||||
restarted :: Property
|
||||
restarted = cmdProperty "service" ["apache2", "restart"]
|
||||
|
||||
reloaded :: Property
|
||||
reloaded = Service.reloaded "apache2"
|
||||
|
|
|
@ -80,6 +80,9 @@ cloned owner url dir mbranch = check originurl (Property desc checkout)
|
|||
removeDirectoryRecursive dir
|
||||
createDirectoryIfMissing True (takeDirectory dir)
|
||||
ensureProperty $ userScriptProperty owner $ catMaybes
|
||||
-- The </dev/null fixes an intermittent
|
||||
-- "fatal: read error: Bad file descriptor"
|
||||
-- when run across ssh with propellor --spin
|
||||
[ Just $ "git clone " ++ shellEscape url ++ " " ++ shellEscape dir ++ " < /dev/null"
|
||||
, Just $ "cd " ++ shellEscape dir
|
||||
, ("git checkout " ++) <$> mbranch
|
||||
|
|
|
@ -57,6 +57,7 @@ gitServer hosts = propertyList "git.kitenet.net setup"
|
|||
, Git.cloned "root" "/srv/git/joey/git.kitenet.net.git" "/srv/web/git.kitenet.net" Nothing
|
||||
, website "git.kitenet.net"
|
||||
, website "git.joeyh.name"
|
||||
, toProp $ Apache.modEnabled "cgi"
|
||||
-- ssh keys for branchable and github repo hooks
|
||||
-- TODO: upgrade to newer git-annex-shell for notification
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue