summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-26 19:58:48 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-26 19:58:48 -0800
commit02e64b943b90387993f8f7bd7e3cd265ee569d27 (patch)
tree05998f38121237fa7ec7bb4c7714cb69e0bb3fc6 /main
parent5048981155836f9ec5225c9086e560f387df2459 (diff)
downloadmill-02e64b943b90387993f8f7bd7e3cd265ee569d27.tar.gz
mill-02e64b943b90387993f8f7bd7e3cd265ee569d27.tar.bz2
mill-02e64b943b90387993f8f7bd7e3cd265ee569d27.zip
force build REPL to be run using -i/--interactive
Diffstat (limited to 'main')
-rw-r--r--main/src/mill/Main.scala60
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)
- }
}
}
}