diff options
| author | Jim Lawson | 2017-02-27 10:48:01 -0800 |
|---|---|---|
| committer | GitHub | 2017-02-27 10:48:01 -0800 |
| commit | 8528ba768003a359bf6c40d2fdc102c4a0d6bea7 (patch) | |
| tree | 827d99b4c32a426549ac43e69791f5fb0c3483eb /src | |
| parent | 6b030c982c11a330c81daeee7b798f6c147b9a05 (diff) | |
Add chisel2 isVCSAvailable, isCommandAvailable to FileUtils. (#439)
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/Driver.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala index fb897936..0fdfa768 100644 --- a/src/main/scala/firrtl/Driver.scala +++ b/src/main/scala/firrtl/Driver.scala @@ -4,6 +4,7 @@ package firrtl import scala.collection._ import scala.io.Source +import scala.sys.process.{BasicIO,stringSeqToProcess} import java.io.{File, FileNotFoundException} import net.jcazevedo.moultingyaml._ @@ -257,4 +258,20 @@ object FileUtils { result } } + + /** Indicate if an external command (executable) is available. + * + * @param cmd the command/executable + * @return true if ```cmd``` is found in PATH. + */ + def isCommandAvailable(cmd: String): Boolean = { + // Eat any output. + val sb = new StringBuffer + val ioToDevNull = BasicIO(false, sb, None) + + Seq("bash", "-c", "which %s".format(cmd)).run(ioToDevNull).exitValue == 0 + } + + /** isVCSAvailable - flag indicating vcs is available (for Verilog compilation and testing. */ + lazy val isVCSAvailable: Boolean = isCommandAvailable("vcs") } |
