summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2014-03-31 18:53:27 -0400
committerJoey Hess2014-03-31 18:53:27 -0400
commite170189b23724d8f8b610d5dcb80c35a16f5fd0a (patch)
treea9b0712b4f6978279b06286e6b7a4b7573db565e
parent45a453a87efb04f3777c7b153da3f391fc0513fb (diff)
propellor spin
-rw-r--r--Propellor/CmdLine.hs21
-rw-r--r--privdata/orca.kitenet.net.gpg36
2 files changed, 36 insertions, 21 deletions
diff --git a/Propellor/CmdLine.hs b/Propellor/CmdLine.hs
index 08d95249..7461a824 100644
--- a/Propellor/CmdLine.hs
+++ b/Propellor/CmdLine.hs
@@ -56,10 +56,11 @@ defaultMain getprops = go True =<< processCmdLine
go _ (Continue cmdline) = go False cmdline
go _ (Set host field) = setPrivData host field
go _ (AddKey keyid) = addKey keyid
- go _ (Spin host) = withprops host $ const $ spin host
+ go True cmdline@(Spin _) = buildFirst cmdline $ go False cmdline
go True cmdline = updateFirst cmdline $ go False cmdline
- go _ (Run host) = withprops host $ ensureProperties
- go _ (Boot host) = withprops host $ boot
+ go False (Spin host) = withprops host $ const $ spin host
+ go False (Run host) = withprops host $ ensureProperties
+ go False (Boot host) = withprops host $ boot
withprops host a = maybe (unknownhost host) a (getprops host)
@@ -69,6 +70,20 @@ unknownhost h = errorMessage $ unwords
, "(perhaps you should specify the real hostname on the command line?)"
]
+buildFirst :: CmdLine -> IO () -> IO ()
+buildFirst cmdline next = do
+ oldtime <- getmtime
+ ifM (actionMessage "Rebuilding propellor" $ boolSystem "make" [Param "build"])
+ ( do
+ newtime <- getmtime
+ if newtime == oldtime
+ then next
+ else void $ boolSystem "./propellor" [Param "--continue", Param (show cmdline)]
+ , errorMessage "Propellor build failed!"
+ )
+ where
+ getmtime = catchMaybeIO $ getModificationTime "propellor"
+
updateFirst :: CmdLine -> IO () -> IO ()
updateFirst cmdline next = do
branchref <- takeWhile (/= '\n')
diff --git a/privdata/orca.kitenet.net.gpg b/privdata/orca.kitenet.net.gpg
index e164c985..0bc59efa 100644
--- a/privdata/orca.kitenet.net.gpg
+++ b/privdata/orca.kitenet.net.gpg
@@ -1,22 +1,22 @@
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
-hQIMA7ODiaEXBlRZARAAt6gaiUna2KXdtdiKAJCY1MJLAj5dCO95poychtXtVd6W
-H4/G1Q+Xt/nAb1F1+Oem3ThQ6v48xYYLni4381BB9saE4KlrF2jnSRS4EECQTOz5
-f+P1x75amWBwRHFROc4ppJHZGHto2MVrId0YTYufrTD+5IB7bqw3cfDMrhPAJpnu
-l2LCPgWnrTEwiqkxGChwp25GhgEh9p5M3UHkcmcxEJ4vb3ecVtHGxTsM7zPwH5rZ
-m9RkHRcKxWpY3UxSfE0lmvKHwQz+KED6wg93IevSOh58E2hV54ZzssPJjaqe0m38
-L+vLKDaoraVQmjc9SiKYQwQvA6cZ1bDDSQLFdlvgKbC9aDQij+c0YevzpV5K26np
-WUmiXQ2BVlwjXKN+sijMNmDoxl3NzZRrGPDLk76rVXiFyzFGU9n43MzcegcFijTd
-g6KPIeMAedeZ1SQZ3xaDKldhjuhKh4Xh0QHvnhIeY4R5C0LKKgvW7g2xTGhc5ESg
-0K54p/G3TcmeBNATQuvk4LYLCYF++HfDwm/Dvo/ns3oYJQVxBpQmX43lnOrBhg5l
-IKxn/DndIW2H/3cvYbQour5JDcroEwJ5QlFKgLGLDTfNwt2s3CPxBW9r34JdcqLy
-JbmRceQHgn1vNG2QY6IzivurO+WDCCgwGi+d8siIXr/oUNFAvDO7FjotfgU98zDS
-wEYBovj6Rox/DrD+yBsm2pYxAPNni6Y54YHJyV+1vDbUuRjA2fAheSMsia3KEoVx
-ehTKJCIkoP56ahrff6+G2wfVqozRwji2C7j/ylr8w0ocIJg/84IqGTeNFtsHvu2k
-RUi4CgTDnW8dZh6/UIkX9sr0T8A9Q+Hstp88P4h9zbzPhQNSerRP+8Ul26D3XNDT
-AX+ZPYWfurhAxTA6Eqq2ErWhJ7Ek1PglJtSLl8rpyRJy8fXLYoIMrtb7gPZGS+J4
-Ufuoj6aEQV6RDMry/FgTS0k1CHjDjxVY2w7MFl8PAJfaor0R51HJp0L7a9sBIanV
-wFtRGz6Cy75gOaLWs+wfYSdWzurVP7yp
-=8gJD
+hQIMA7ODiaEXBlRZARAAoVw7wqLnw6R5UttObjy7gBmuqF1Fsmrk+UtbNTQocEhy
+KRyYJD3UBZCuvOiYd0z5wF6a/FKeFb3wSXI88xxqmk0LTEJ4MFyHLsWeDtEKqwce
+Em+oiE87mpM5H5bWl6IIlPuCBerrOW11wOcsSYI1NRqd9sBsqiZ/kWDOS+0YhdF7
+U20TgBlToalXJgsR4erzLoOXZzeZakPcSeN4g0QVJjPoh/AHqYmIjB2QKrg0/N5t
+iSzONPfi980W0DFCBGM6ftoE9ytB1pITH5vCipb59NNcn3xwhwV2DFQjt5sG6G0I
+7Lxao8DVaShr9PcJsALwWKrWuD0XBklS5R/4e4KkY+h6n915k+yNrzZqQmDnyb1r
+eFGDl1pI4b/zgvQAA+Tj76u8JjOiFL9FiBmkLczFBXWFbOwxLhvK18m7Wz5DscQj
+ty7c/Yt6SuNstQ3qZ6g3ZhGJ1un3c122WejbevhMF4RRx4hA8eanw3v4quVO864Z
+pwBHK3TCSWLKQpZy6xOoTAvZxAs4Rg7/y/pgzv8X6z3n48Ox8oGOJLiBKJutVsoz
+zOvWVvP+4DvZsft9ngZRptHNCymMo2X+QN87FucQXifwx+v3I3wPjmyyLcpj9PzR
+JzJntlLTleGFeyAlpmhKOlGsuowOHc8QHfCBfRLbWNo92rjnpAjnZh4yGQGjnkPS
+wFIBsfWrwyat40Nf0EpfwtKJ1nDE7wsQXO5Xx/6Q+x+cWmu4eMwJ7pSTfotCGouC
+GRP45M3w7m8AIbrhHtPK53cABdOg8MgVzmonZIvKJKBmQy+qSHUXPo4BEaUB9g/Q
+FkJv4E4LixImcG1TQ+gY5Kj+FccAwOKTB99MB2yUflExGUSDwXtM3X7sByJHYrRO
+OBf3yLL49jP0dM1MlW7R0RbvogIMQWpc6UjEZLK9/sWoHBFtQXtK4zhZ2+Pvq/ah
+JZrMGNOKrOVboiwR7nN+L5QOcsU1ILQaxPewUVwF51RAhXGOZqK/KWnG/91bLKxA
+khNNcWsL4UyDMngP6zax0e60mpkk0rOXrLUD1yWLG/X93PkR
+=dxVT
-----END PGP MESSAGE-----