diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-26 19:58:48 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-26 19:58:48 -0800 |
commit | 02e64b943b90387993f8f7bd7e3cd265ee569d27 (patch) | |
tree | 05998f38121237fa7ec7bb4c7714cb69e0bb3fc6 /main/src | |
parent | 5048981155836f9ec5225c9086e560f387df2459 (diff) | |
download | mill-02e64b943b90387993f8f7bd7e3cd265ee569d27.tar.gz mill-02e64b943b90387993f8f7bd7e3cd265ee569d27.tar.bz2 mill-02e64b943b90387993f8f7bd7e3cd265ee569d27.zip |
force build REPL to be run using -i/--interactive
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/mill/Main.scala | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/main/src/mill/Main.scala b/main/src/mill/Main.scala index 91fe862c..4a2ccba0 100644 --- a/main/src/mill/Main.scala +++ b/main/src/mill/Main.scala @@ -137,36 +137,42 @@ object Main { case Right((cliConfig, leftoverArgs)) => val repl = leftoverArgs.isEmpty - val config = - if(!repl) cliConfig - else cliConfig.copy( - predefCode = - """import $file.build, build._ - |implicit val replApplyHandler = mill.main.ReplApplyHandler( - | interp.colors(), - | repl.pprinter(), - | build.millSelf.get, - | build.millDiscover - |) - |repl.pprinter() = replApplyHandler.pprinter - |import replApplyHandler.generatedEval._ - | - """.stripMargin, - welcomeBanner = None + if (repl && stdin == DummyInputStream) { + stderr.println("Build repl needs to be run with the -i/--interactive flag") + (false, stateCache) + }else{ + val config = + if(!repl) cliConfig + else cliConfig.copy( + predefCode = + """import $file.build, build._ + |implicit val replApplyHandler = mill.main.ReplApplyHandler( + | interp.colors(), + | repl.pprinter(), + | build.millSelf.get, + | build.millDiscover + |) + |repl.pprinter() = replApplyHandler.pprinter + |import replApplyHandler.generatedEval._ + | + """.stripMargin, + welcomeBanner = None + ) + + val runner = new mill.main.MainRunner( + config.copy(colored = Some(mainInteractive)), + stdout, stderr, stdin, + stateCache ) - val runner = new mill.main.MainRunner( - config.copy(colored = Some(mainInteractive)), - stdout, stderr, stdin, - stateCache - ) + if (repl){ + runner.printInfo("Loading...") + (runner.watchLoop(isRepl = true, printing = false, _.run()), runner.stateCache) + } else { + (runner.runScript(pwd / "build.sc", leftoverArgs), runner.stateCache) + } + } - if (repl){ - runner.printInfo("Loading...") - (runner.watchLoop(isRepl = true, printing = false, _.run()), runner.stateCache) - } else { - (runner.runScript(pwd / "build.sc", leftoverArgs), runner.stateCache) - } } } } |