summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2014-03-30 19:19:29 -0400
committerJoey Hess2014-03-30 19:19:29 -0400
commit6d5919199d49384240e13ebee67348a35f3ef85b (patch)
treeb29d89b59ddb3c2302aab761de8bda618a974da9
parent0720bc499f49ffbce8fcebe2f931d56dc5cc83e3 (diff)
propellor spin
-rw-r--r--CmdLine.hs2
-rw-r--r--PrivData.hs4
2 files changed, 6 insertions, 0 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index 7f5cd79d..1d7316f3 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -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"