when ssh key data is missing, allow both error messages to be printed

This commit is contained in:
Joey Hess 2014-06-07 00:07:08 -04:00
parent a4dd315d3c
commit 969db1ed56
3 changed files with 11 additions and 1 deletions

View File

@ -196,6 +196,7 @@ hosts = -- (o) `
& Apt.installed ["obnam", "sshfs", "rsync"]
& JoeySites.githubBackup
& JoeySites.obnamRepos ["wren", "pell"]
& Ssh.knownHost hosts "usw-s002.rsync.net" "joey"
& alias "podcatcher.kitenet.net"
& Apt.installed ["git-annex"]

View File

@ -37,6 +37,15 @@ combineProperties desc ps = Property desc (go ps NoChange) (combineAttrs ps)
FailedChange -> return FailedChange
_ -> go ls (r <> rs)
-- | Does not stop on failure (but does propigate failure at the end).
combineProperties' :: Desc -> [Property] -> Property
combineProperties' desc ps = Property desc (go ps NoChange) (combineAttrs ps)
where
go [] rs = return rs
go (l:ls) rs = do
r <- ensureProperty l
go ls (r <> rs)
-- | Combines together two properties, resulting in one property
-- that ensures the first, and if the first succeeds, ensures the second.
-- The property uses the description of the first property.

View File

@ -97,7 +97,7 @@ hostKey keytype = combineProperties desc
-- | Sets up a user with a ssh private key and public key pair
-- from the site's PrivData.
keyImported :: SshKeyType -> UserName -> Property
keyImported keytype user = combineProperties desc
keyImported keytype user = combineProperties' desc
[ property desc (install writeFile (SshPubKey keytype user) ".pub")
, property desc (install writeFileProtected (SshPrivKey keytype user) "")
]