summaryrefslogtreecommitdiff
path: root/src/Propellor/Server.hs
diff options
context:
space:
mode:
authorJoey Hess2014-11-22 00:25:00 -0400
committerJoey Hess2014-11-22 00:25:00 -0400
commit7fd338f96f5852ea309bd4a2964bf93d06062086 (patch)
tree2a42123befbc3ce22818013bbb5dcb9dccffdf48 /src/Propellor/Server.hs
parentf62d2fb18389947ce11021ba80b2aee52c6d03c2 (diff)
propellor spin
Diffstat (limited to 'src/Propellor/Server.hs')
-rw-r--r--src/Propellor/Server.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/Propellor/Server.hs b/src/Propellor/Server.hs
index 786d1211..a8cd6a00 100644
--- a/src/Propellor/Server.hs
+++ b/src/Propellor/Server.hs
@@ -8,7 +8,9 @@ import Data.List
import System.Exit
import System.PosixCompat
import System.Posix.IO
+import System.Posix.Directory
import Control.Concurrent.Async
+import Control.Exception (bracket)
import qualified Data.ByteString as B
import Propellor
@@ -131,15 +133,15 @@ sendPrecompiled hn = void $ actionMessage ("Uploading locally compiled propellor
let shimdir = "propellor"
let me = localdir </> "propellor"
void $ Shim.setup me shimdir
- withTmpFile "propellor.tar" $ \tarball -> allM id
+ withTmpFile "propellor.tar" $ \tarball _ -> allM id
[ boolSystem "strip" [File me]
- , boolSystem "tar" [Param "cf", File tmp, File shimdir]
- , boolSystem "scp" $ cacheparams ++ [File tarball, Param ("root@"++hn++":"++remotetarball)
+ , boolSystem "tar" [Param "cf", File tarball, File shimdir]
+ , boolSystem "scp" $ cacheparams ++ [File tarball, Param ("root@"++hn++":"++remotetarball)]
, boolSystem "ssh" $ cacheparams ++ [Param ("root@"++hn), Param unpackcmd]
]
where
remotetarball = "/usr/local/propellor.tar"
- unpackcmd = shellSwap $ intercalate " && "
+ unpackcmd = shellWrap $ intercalate " && "
[ "cd " ++ takeDirectory remotetarball
, "tar xf " ++ remotetarball
, "rm -f " ++ remotetarball