From afb7afee0ce011754e60f313b6929d1eadfcc701 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 30 Mar 2014 16:11:00 -0400 Subject: [PATCH] more description improvements --- Propellor.hs | 7 ++++--- Property.hs | 9 ++++++--- Property/Ssh.hs | 7 ++++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Propellor.hs b/Propellor.hs index dc5185d..f8d0e71 100644 --- a/Propellor.hs +++ b/Propellor.hs @@ -64,7 +64,8 @@ cleanCloudAtCost hostname = propertyList "cloudatcost cleanup" `onChange` cmdProperty "update-grub" [] `onChange` cmdProperty "update-initramfs" [Param "-u"] `describe` "work around grub/lvm boot bug #743126" - -- Cruft - , File.notPresent "/etc/rc.local" - , File.notPresent "/etc/init.d/S97-setup.sh" + , combineProperties + [ File.notPresent "/etc/rc.local" + , File.notPresent "/etc/init.d/S97-setup.sh" + ] `describe` "nuked cloudatcost cruft" ] diff --git a/Property.hs b/Property.hs index 84a57a1..77a1f50 100644 --- a/Property.hs +++ b/Property.hs @@ -43,8 +43,8 @@ propertyList desc ps = Property desc $ ensureProperties' ps {- Combines a list of properties, resulting in one property that - ensures each in turn, stopping on failure. -} -combineProperties :: Desc -> [Property] -> Property -combineProperties desc ps = Property desc $ go ps NoChange +combineProperties :: [Property] -> Property +combineProperties ps = Property desc $ go ps NoChange where go [] rs = return rs go (l:ls) rs = do @@ -52,6 +52,9 @@ combineProperties desc ps = Property desc $ go ps NoChange case r of FailedChange -> return FailedChange _ -> go ls (combineResult r rs) + desc = case ps of + (p:_) -> propertyDesc p + _ -> "(empty)" {- Makes a perhaps non-idempotent Property be idempotent by using a flag - file to indicate whether it has run before. @@ -81,7 +84,7 @@ property `onChange` hook = Property (propertyDesc property) $ do {- Indicates that the first property can only be satisfied once - the second is. -} requires :: Property -> Property -> Property -x `requires` y = combineProperties (propertyDesc x) [y, x] +x `requires` y = combineProperties [y, x] `describe` propertyDesc x describe :: Property -> Desc -> Property describe p d = p { propertyDesc = d } diff --git a/Property/Ssh.hs b/Property/Ssh.hs index 1b0a6c5..c726bed 100644 --- a/Property/Ssh.hs +++ b/Property/Ssh.hs @@ -12,12 +12,13 @@ sshdConfig :: FilePath sshdConfig = "/etc/ssh/sshd_config" setSshdConfig :: String -> Bool -> Property -setSshdConfig setting allowed = combineProperties desc +setSshdConfig setting allowed = combineProperties [ sshdConfig `File.lacksLine` (sshline $ not allowed) , sshdConfig `File.containsLine` (sshline allowed) - ] `onChange` restartSshd + ] + `onChange` restartSshd + `describe` unwords [ "ssh config:", setting, sshBool allowed ] where - desc = unwords [ "ssh config:", setting, sshBool allowed ] sshline v = setting ++ " " ++ sshBool v permitRootLogin :: Bool -> Property