propellor spin

This commit is contained in:
Joey Hess 2014-03-31 18:53:27 -04:00
parent 45a453a87e
commit e170189b23
Failed to extract signature
2 changed files with 36 additions and 21 deletions

View File

@ -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')

View File

@ -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-----