From 740740d21553e45447259c3a21e95e94b1e59a42 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 1 Jun 2014 16:58:05 -0400 Subject: Added --dump to dump out a field of a host's privdata. Useful for editing it. --- src/Propellor/PrivData.hs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/Propellor/PrivData.hs') diff --git a/src/Propellor/PrivData.hs b/src/Propellor/PrivData.hs index 54f67d73..5ddbdcff 100644 --- a/src/Propellor/PrivData.hs +++ b/src/Propellor/PrivData.hs @@ -49,7 +49,7 @@ setPrivData host field = do value <- chomp <$> hGetContentsStrict stdin makePrivDataDir let f = privDataFile host - m <- fromMaybe M.empty . readish <$> gpgDecrypt f + m <- decryptPrivData host let m' = M.insert field value m gpgEncrypt f (show m') putStrLn "Private data set." @@ -59,6 +59,16 @@ setPrivData host field = do | end s == "\n" = chomp (beginning s) | otherwise = s +dumpPrivData :: HostName -> PrivDataField -> IO () +dumpPrivData host field = go . M.lookup field =<< decryptPrivData host + where + go Nothing = error "Requested privdata is not set." + go (Just s) = putStrLn s + +decryptPrivData :: HostName -> IO (M.Map PrivDataField String) +decryptPrivData host = fromMaybe M.empty . readish + <$> gpgDecrypt (privDataFile host) + makePrivDataDir :: IO () makePrivDataDir = createDirectoryIfMissing False privDataDir -- cgit v1.2.3