gatk-3.8/scala/src/org/broadinstitute/sting/queue/QArguments.scala

74 lines
1.7 KiB
Scala
Executable File

package org.broadinstitute.sting.queue
import collection.mutable.ListBuffer
import engine.Pipeline
import org.broadinstitute.sting.queue.util.Logging
object QArguments {
val scripts = new ListBuffer[String]
def parseArgs(args: Array[String]) {
filterArgs(args)
}
/**
* Pull out any args that are meant for QCommandLine
*/
private def filterArgs(args: Array[String]) = {
var filtered = new ListBuffer[String]
filtered.appendAll(args)
if (isFlagged(filtered, "-debug"))
Logging.enableDebug
if (isFlagged(filtered, "-dry"))
Pipeline.dryRun = true
if (isFlagged(filtered, "-bsub"))
Pipeline.useBsub = true
for (arg <- getArgs(filtered, "-P"))
Pipeline.addArg(arg)
for (arg <- getArgs(filtered, "-I"))
Pipeline.addFile(arg)
for (arg <- getArgs(filtered, "-S"))
scripts.append(arg)
filtered
}
private def isFlagged(filtered: ListBuffer[String], search: String) = {
var found = false
var index = 0
while (0 <= index && index < filtered.size) {
index = filtered.indexOf(search)
if (index >= 0) {
found = true
filtered.remove(index)
}
}
found
}
private def getArgs(filtered: ListBuffer[String], search: String) = {
var found = new ListBuffer[String]
var index = 0
while (0 <= index && index < filtered.size) {
index = filtered.indexOf(search)
if (index >= 0) {
found.append(filtered(index+1))
filtered.remove(index, 2)
}
}
found
}
def strip(filtered: ListBuffer[String], search: String) = {
var index = 0
while (0 <= index && index < filtered.size) {
index = filtered.indexOf(search)
if (index >= 0) {
filtered.remove(index, 2)
}
}
}}