summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorTobias Roeser <le.petit.fou@web.de>2019-02-25 11:07:28 +0100
committerTobias Roeser <le.petit.fou@web.de>2019-02-25 11:07:28 +0100
commitb19b5a4d36ed5015eb59d621dab13e9742408805 (patch)
treedbd4a5715155066ea46dae368314dfc9e3ea4a36 /main/src
parentd1d9d5ff7f4ca5bc44c383d5e1000674c2b4c2e2 (diff)
downloadmill-b19b5a4d36ed5015eb59d621dab13e9742408805.tar.gz
mill-b19b5a4d36ed5015eb59d621dab13e9742408805.tar.bz2
mill-b19b5a4d36ed5015eb59d621dab13e9742408805.zip
Reviewed exitCode handling
Propagate server stop because of version change as exit code.
Diffstat (limited to 'main/src')
-rw-r--r--main/src/main/MillServerMain.scala10
1 files changed, 7 insertions, 3 deletions
diff --git a/main/src/main/MillServerMain.scala b/main/src/main/MillServerMain.scala
index 55cef632..862daaf7 100644
--- a/main/src/main/MillServerMain.scala
+++ b/main/src/main/MillServerMain.scala
@@ -37,9 +37,9 @@ object MillServerMain extends mill.main.MillServerMain[Evaluator.State]{
def handle(sig: Signal) = {} // do nothing
})
new Server(
- args0(0),
+ lockBase = args0(0),
this,
- () => System.exit(0),
+ () => System.exit(MillClientMain.ExitServerCodeWhenIdle()),
300000,
mill.main.client.Locks.files(args0(0))
).run()
@@ -124,7 +124,11 @@ class Server[T](lockBase: String,
if (clientMillVersion != serverMillVersion) {
// FIXME: exiting with 0 isn't correct, see https://github.com/lihaoyi/mill/issues/557
stdout.println(s"Mill version changed ($serverMillVersion -> $clientMillVersion), re-starting server")
- System.exit(0)
+ java.nio.file.Files.write(
+ java.nio.file.Paths.get(lockBase + "/exitCode"),
+ s"${MillClientMain.ExitServerCodeWhenVersionMismatch()}".getBytes()
+ )
+ System.exit(MillClientMain.ExitServerCodeWhenVersionMismatch())
}
val args = Util.parseArgs(argStream)
val env = Util.parseMap(argStream)