diff --git a/toolflow/src/main/scala/com/minres/tgc/hammer/cli/CoreSelection.scala b/toolflow/src/main/scala/com/minres/tgc/hammer/cli/CoreSelection.scala index 6dbb977..b62de3d 100644 --- a/toolflow/src/main/scala/com/minres/tgc/hammer/cli/CoreSelection.scala +++ b/toolflow/src/main/scala/com/minres/tgc/hammer/cli/CoreSelection.scala @@ -5,6 +5,13 @@ import org.rogach.scallop.* trait CoreSelection { this: MySubcommand => val core: ScallopOption[String] = opt[String](group = mainGroup, required = true, descr = "The core to be extended; core datasheets are in coreDatasheets/") + def getCoreDatasheet: os.Path = CORE_DATASHEETS / s"${core()}.yaml" - def getCoreDatasheet: os.Path = CORE_DATASHEETS / s"$core.yaml" + addValidation { + if (os.isFile(getCoreDatasheet)) { + Right(()) + } else { + Left(s"Core ${core()} not supported, no core datasheet at ${getCoreDatasheet}") + } + } } diff --git a/toolflow/src/main/scala/com/minres/tgc/hammer/tasks/Task.scala b/toolflow/src/main/scala/com/minres/tgc/hammer/tasks/Task.scala index bef368b..49ee796 100644 --- a/toolflow/src/main/scala/com/minres/tgc/hammer/tasks/Task.scala +++ b/toolflow/src/main/scala/com/minres/tgc/hammer/tasks/Task.scala @@ -19,6 +19,8 @@ trait TaskImpl[T <: Task : ClassTag] extends Task with Logging[T] { def runExecutable(execPath: Path, args: Shellable*): os.CommandResult = { val command = s"$execPath ${args.flatMap(_.value).mkString(" ")}" + log.info(s"Running external program: ") + log.info(command) os.proc("bash", "-c", command).call(stdout = os.Inherit) } }