summaryrefslogtreecommitdiff
path: root/src/Propellor/PrivData.hs
diff options
context:
space:
mode:
authorJoey Hess2014-06-05 16:52:45 -0400
committerJoey Hess2014-06-05 16:52:45 -0400
commitf8bad2726760268f1daae2a3329be5db310727b8 (patch)
treeab5db4785fee3c7e919213b97975e727e7724907 /src/Propellor/PrivData.hs
parent383548956354a00cf24323310e9981ccea6a1ddf (diff)
parentdbffd982bac47cebd3fc67e51b46182f7e43392d (diff)
Merge branch 'joeyconfig'
Diffstat (limited to 'src/Propellor/PrivData.hs')
-rw-r--r--src/Propellor/PrivData.hs12
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