diff options
author | Tobias Roeser <le.petit.fou@web.de> | 2019-02-25 11:07:28 +0100 |
---|---|---|
committer | Tobias Roeser <le.petit.fou@web.de> | 2019-02-25 11:07:28 +0100 |
commit | b19b5a4d36ed5015eb59d621dab13e9742408805 (patch) | |
tree | dbd4a5715155066ea46dae368314dfc9e3ea4a36 /main/src | |
parent | d1d9d5ff7f4ca5bc44c383d5e1000674c2b4c2e2 (diff) | |
download | mill-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.scala | 10 |
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) |