summaryrefslogtreecommitdiff
path: root/src
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
parentf62d2fb18389947ce11021ba80b2aee52c6d03c2 (diff)
propellor spin
Diffstat (limited to 'src')
-rw-r--r--src/Propellor/CmdLine.hs2
-rw-r--r--src/Propellor/Server.hs10
2 files changed, 7 insertions, 5 deletions
diff --git a/src/Propellor/CmdLine.hs b/src/Propellor/CmdLine.hs
index ec2ca7ed..99826c3a 100644
--- a/src/Propellor/CmdLine.hs
+++ b/src/Propellor/CmdLine.hs
@@ -176,7 +176,7 @@ spin hn hst = do
updatecmd = mkcmd
[ "if [ ! -d " ++ localdir ++ " ]"
, "then (" ++ intercalate " && "
- [ "apt-get update"
+ [ "apt-get-fail update"
, "apt-get --no-install-recommends --no-upgrade -y install git make"
, "echo " ++ toMarked statusMarker (show NeedGitClone)
] ++ ") || echo " ++ toMarked statusMarker (show NeedPrecompiled)
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