74 lines
1.7 KiB
Scala
74 lines
1.7 KiB
Scala
|
|
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)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}}
|