From 893ed22449edf83e6773feff8058d6ceb64ae984 Mon Sep 17 00:00:00 2001 From: Chick Markley Date: Tue, 19 Sep 2017 12:02:29 -0700 Subject: Provide mechanism so that programs can optionally (#660) not exit when --help is included in program flags--- src/main/scala/firrtl/ExecutionOptionsManager.scala | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/scala/firrtl/ExecutionOptionsManager.scala b/src/main/scala/firrtl/ExecutionOptionsManager.scala index 4ffc7915..8d071902 100644 --- a/src/main/scala/firrtl/ExecutionOptionsManager.scala +++ b/src/main/scala/firrtl/ExecutionOptionsManager.scala @@ -18,8 +18,25 @@ import scala.collection.Seq trait ComposableOptions abstract class HasParser(applicationName: String) { - final val parser: OptionParser[Unit] = new OptionParser[Unit](applicationName) {} -} + final val parser = new OptionParser[Unit](applicationName) { + var terminateOnExit = true + override def terminate(exitState: Either[String, Unit]): Unit = { + if(terminateOnExit) sys.exit(0) + } + } + + /** + * By default scopt calls sys.exit when --help is in options, this defeats that + */ + def doNotExitOnHelp(): Unit = { + parser.terminateOnExit = false + } + /** + * By default scopt calls sys.exit when --help is in options, this un-defeats doNotExitOnHelp + */ + def exitOnHelp(): Unit = { + parser.terminateOnExit = true + }} /** * Most of the chisel toolchain components require a topName which defines a circuit or a device under test. -- cgit v1.2.3