summaryrefslogtreecommitdiff
path: root/main/src/main/MillServerMain.scala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/MillServerMain.scala')
-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)