diff options
| author | Joey Hess <joey@kitenet.net> | 2014-03-30 19:19:29 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-03-30 19:19:29 -0400 |
| commit | 6d5919199d49384240e13ebee67348a35f3ef85b (patch) | |
| tree | b29d89b59ddb3c2302aab761de8bda618a974da9 | |
| parent | 0720bc499f49ffbce8fcebe2f931d56dc5cc83e3 (diff) | |
propellor spin
| -rw-r--r-- | CmdLine.hs | 2 | ||||
| -rw-r--r-- | PrivData.hs | 4 |
2 files changed, 6 insertions, 0 deletions
@@ -54,6 +54,7 @@ spin host = do url <- getUrl privdata <- gpgDecrypt (privDataFile host) void $ boolSystem "git" [Param "commit", Param "-a", Param "-m", Param "propellor spin"] + void $ boolSystem "git" [Param "push"] withHandle StdinHandle createProcessSuccess (proc "ssh" ["root@"++host, bootstrap url]) $ \h -> do hPutStr h $ unlines $ map (privDataMarker ++) $ lines privdata @@ -79,6 +80,7 @@ boot props = do . filter (privDataMarker `isPrefixOf`) . lines <$> getContents + makePrivDataDir writeFileProtected privDataLocal (unlines privdata) ensureProperties props diff --git a/PrivData.hs b/PrivData.hs index c0c07fb2..a74cb208 100644 --- a/PrivData.hs +++ b/PrivData.hs @@ -39,12 +39,16 @@ getPrivData field = do setPrivData :: HostName -> PrivDataField -> String -> IO () setPrivData host field value = do + makePrivDataDir let f = privDataFile host m <- fromMaybe M.empty . readish <$> gpgDecrypt f let m' = M.insert field value m gpgEncrypt f (show m') void $ boolSystem "git" [Param "add", File f] +makePrivDataDir :: IO () +makePrivDataDir = createDirectoryIfMissing False privDataDir + privDataDir :: FilePath privDataDir = "privdata" |
