diff options
| author | Joey Hess <joey@kitenet.net> | 2014-06-01 16:58:05 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-06-01 16:58:05 -0400 |
| commit | 740740d21553e45447259c3a21e95e94b1e59a42 (patch) | |
| tree | 40d91a31b776de6b3143b713900c5ea03bc2739d /src/Propellor/PrivData.hs | |
| parent | d224463dcd45b798c532d75ed84d9b1282b83e85 (diff) | |
Added --dump to dump out a field of a host's privdata. Useful for editing it.
Diffstat (limited to 'src/Propellor/PrivData.hs')
| -rw-r--r-- | src/Propellor/PrivData.hs | 12 |
1 files changed, 11 insertions, 1 deletions
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 |
