aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchuyler Eldridge2018-11-07 17:42:31 -0500
committerSchuyler Eldridge2019-04-22 20:29:54 -0400
commitd0a7205d9e9ba02fb234eb70371012443deb242c (patch)
tree71883721a1f0b7ceba2a059a0c463a6597823eaa
parent99ae1d6649f1731c5dec2098b10733735232b72c (diff)
Improve registered library help text
This changes the base Shell to print information about all registered libraries/transforms. This addresses an @azidar comment about difficulty debugging whether registration worked. This also changes the "FIRRTL Transform Options" help text for registered transforms to only print if registered transforms exist. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
-rw-r--r--src/main/scala/firrtl/options/Shell.scala10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/scala/firrtl/options/Shell.scala b/src/main/scala/firrtl/options/Shell.scala
index 4fb89450..9f0cb8bd 100644
--- a/src/main/scala/firrtl/options/Shell.scala
+++ b/src/main/scala/firrtl/options/Shell.scala
@@ -38,7 +38,7 @@ class Shell(val applicationName: String) {
lazy val registeredTransforms: Seq[RegisteredTransform] = {
val transforms = scala.collection.mutable.ArrayBuffer[RegisteredTransform]()
val iter = ServiceLoader.load(classOf[RegisteredTransform]).iterator()
- parser.note("FIRRTL Transform Options")
+ if (iter.hasNext) { parser.note("FIRRTL Transform Options") }
while (iter.hasNext) {
val tx = iter.next()
transforms += tx
@@ -53,8 +53,12 @@ class Shell(val applicationName: String) {
* line options via methods of [[Shell.parser]]
*/
def parse(args: Array[String], initAnnos: AnnotationSeq = Seq.empty): AnnotationSeq = {
- registeredTransforms
- registeredLibraries
+ val rtString = registeredTransforms.map(r => s"\n - ${r.getClass.getName}").mkString
+ val rlString = registeredLibraries.map(l => s"\n - ${l.getClass.getName}").mkString
+ parser.note(s"""|
+ |The following FIRRTL transforms registered command line options:$rtString
+ |The following libraries registered command line options:$rlString""".stripMargin)
+
parser
.parse(args, initAnnos)
.getOrElse(throw new OptionsException("Failed to parse command line options", new IllegalArgumentException))