From 0460a04474d2ea4f439708bb9f8ded24fba329ac Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 8 Apr 2014 16:58:11 -0400 Subject: propellor spin --- Propellor/Property/File.hs | 7 +++++++ Propellor/Property/OpenId.hs | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 Propellor/Property/OpenId.hs (limited to 'Propellor/Property') diff --git a/Propellor/Property/File.hs b/Propellor/Property/File.hs index 80c69d9b..0c1155fe 100644 --- a/Propellor/Property/File.hs +++ b/Propellor/Property/File.hs @@ -11,6 +11,13 @@ hasContent :: FilePath -> [Line] -> Property f `hasContent` newcontent = fileProperty ("replace " ++ f) (\_oldcontent -> newcontent) f +-- | Ensures a file has contents that comes from PrivData. +-- Note: Does not do anything with the permissions of the file to prevent +-- it from being seen. +hasPrivContent :: FilePath -> Property +hasPrivContent f = Property ("privcontent " ++ f) $ + withPrivData (PrivFile f) (\v -> ensureProperty $ f `hasContent` lines v) + -- | Ensures that a line is present in a file, adding it to the end if not. containsLine :: FilePath -> Line -> Property f `containsLine` l = fileProperty (f ++ " contains:" ++ l) go f diff --git a/Propellor/Property/OpenId.hs b/Propellor/Property/OpenId.hs new file mode 100644 index 00000000..4ebf18f0 --- /dev/null +++ b/Propellor/Property/OpenId.hs @@ -0,0 +1,15 @@ +module Propellor.Property.OpenId where + +import Propellor +import qualified Propellor.Property.File as File +import qualified Propellor.Property.Apt as Apt + +providerFor :: [UserName] -> Property +providerFor users = propertyList ("openid provider") $ + [ serviceRunning "apache2" + `requires` Apt.installed ["apache2"] + , Apt.installed ["simpleid"] + ] ++ map identfile users + where + identfile u = File.hasPrivContent $ concat + [ "/var/lib/simpleid/identities/", u, ".identity" ] -- cgit v1.2.3