gatk-3.8/scala/src/org/broadinstitute/sting/queue/engine/ShellJobRunner.scala

39 lines
1.2 KiB
Scala
Executable File

package org.broadinstitute.sting.queue.engine
import org.broadinstitute.sting.queue.util.{Logging, ShellJob}
import org.broadinstitute.sting.queue.function.CommandLineFunction
/**
* Runs jobs one at a time locally
*/
class ShellJobRunner extends JobRunner with Logging {
/**
* Runs the function on the local shell.
* @param function Command to run.
* @param qGraph graph that holds the job, and if this is a dry run.
*/
def run(function: CommandLineFunction, qGraph: QGraph) = {
val job = new ShellJob
job.command = function.commandLine
job.workingDir = function.commandDirectory
job.outputFile = function.jobOutputFile
job.errorFile = function.jobErrorFile
if (logger.isDebugEnabled) {
logger.debug(function.commandDirectory + " > " + function.commandLine)
} else {
logger.info(function.commandLine)
}
logger.info("Output written to " + function.jobOutputFile)
if (function.jobErrorFile != null) {
logger.info("Errors written to " + function.jobErrorFile)
} else {
if (logger.isDebugEnabled)
logger.info("Errors also written to " + function.jobOutputFile)
}
if (!qGraph.dryRun)
job.run
}
}