diff options
| author | Joey Hess <joey@kitenet.net> | 2014-06-05 16:52:45 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-06-05 16:52:45 -0400 |
| commit | f8bad2726760268f1daae2a3329be5db310727b8 (patch) | |
| tree | ab5db4785fee3c7e919213b97975e727e7724907 /src/Propellor/PrivData.hs | |
| parent | 383548956354a00cf24323310e9981ccea6a1ddf (diff) | |
| parent | dbffd982bac47cebd3fc67e51b46182f7e43392d (diff) | |
Merge branch 'joeyconfig'
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 |
