basic prosody support
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
This commit is contained in:
parent
f3a31c9192
commit
3541260436
|
@ -87,6 +87,7 @@ Library
|
||||||
Propellor.Property.Obnam
|
Propellor.Property.Obnam
|
||||||
Propellor.Property.OpenId
|
Propellor.Property.OpenId
|
||||||
Propellor.Property.Postfix
|
Propellor.Property.Postfix
|
||||||
|
Propellor.Property.Prosody
|
||||||
Propellor.Property.Reboot
|
Propellor.Property.Reboot
|
||||||
Propellor.Property.Scheduled
|
Propellor.Property.Scheduled
|
||||||
Propellor.Property.Service
|
Propellor.Property.Service
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
module Propellor.Property.Prosody where
|
||||||
|
|
||||||
|
import Propellor
|
||||||
|
import qualified Propellor.Property.File as File
|
||||||
|
import qualified Propellor.Property.Apt as Apt
|
||||||
|
import qualified Propellor.Property.Service as Service
|
||||||
|
import System.Posix.Files
|
||||||
|
|
||||||
|
type ConfigFile = [String]
|
||||||
|
|
||||||
|
type Conf = String
|
||||||
|
|
||||||
|
confEnabled :: Conf -> ConfigFile -> RevertableProperty
|
||||||
|
confEnabled conf cf = RevertableProperty enable disable
|
||||||
|
where
|
||||||
|
enable = check test prop
|
||||||
|
`describe` ("prosody conf enabled " ++ conf)
|
||||||
|
`requires` confAvailable conf cf
|
||||||
|
`requires` installed
|
||||||
|
`onChange` reloaded
|
||||||
|
where
|
||||||
|
test = not <$> doesFileExist (confValPath conf)
|
||||||
|
prop = property "prosody conf in place" $ makeChange $
|
||||||
|
createSymbolicLink target dir
|
||||||
|
target = confValRelativePath conf
|
||||||
|
dir = confValPath conf
|
||||||
|
confValRelativePath conf' = "../conf.avail" </> conf' <.> "cfg.lua"
|
||||||
|
disable = trivial $ File.notPresent (confValPath conf)
|
||||||
|
`describe` ("prosody conf disabled " ++ conf)
|
||||||
|
`requires` installed
|
||||||
|
`onChange` reloaded
|
||||||
|
|
||||||
|
confAvailable :: Conf -> ConfigFile -> Property
|
||||||
|
confAvailable conf cf = ("prosody conf available " ++ conf) ==>
|
||||||
|
confAvailPath conf `File.hasContent` (comment : cf)
|
||||||
|
where
|
||||||
|
comment = "-- deployed with propellor, do not modify"
|
||||||
|
|
||||||
|
confAvailPath :: Conf -> FilePath
|
||||||
|
confAvailPath conf = "/etc/prosody/conf.avail" </> conf <.> "cfg.lua"
|
||||||
|
|
||||||
|
confValPath :: Conf -> FilePath
|
||||||
|
confValPath conf = "/etc/prosody/conf.d" </> conf <.> "cfg.lua"
|
||||||
|
|
||||||
|
installed :: Property
|
||||||
|
installed = Apt.installed ["prosody"]
|
||||||
|
|
||||||
|
restarted :: Property
|
||||||
|
restarted = Service.restarted "prosody"
|
||||||
|
|
||||||
|
reloaded :: Property
|
||||||
|
reloaded = Service.reloaded "prosody"
|
Loading…
Reference in New Issue