Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
biopet.biopet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Mirrors
biopet.biopet
Commits
6efe0956
Commit
6efe0956
authored
Sep 19, 2016
by
bow
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-precommands' into 'develop'
Adding precommands See merge request !450
parents
a37fabe7
12d64615
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
5 deletions
+13
-5
biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetCommandLineFunction.scala
.../nl/lumc/sasc/biopet/core/BiopetCommandLineFunction.scala
+13
-5
No files found.
biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetCommandLineFunction.scala
View file @
6efe0956
...
...
@@ -18,7 +18,7 @@ import java.io.{ File, FileInputStream, PrintWriter }
import
java.security.MessageDigest
import
nl.lumc.sasc.biopet.utils.Logging
import
org.broadinstitute.gatk.utils.commandline.
{
Gather
,
Input
,
Output
}
import
org.broadinstitute.gatk.utils.commandline.
{
Input
,
Output
}
import
org.broadinstitute.gatk.utils.runtime.ProcessSettings
import
org.ggf.drmaa.JobTemplate
...
...
@@ -40,6 +40,8 @@ trait BiopetCommandLineFunction extends CommandLineResources { biopetFunction =>
def
defaultRemoteCommand
=
"bash"
private
val
remoteCommand
:
String
=
config
(
"remote_command"
,
default
=
defaultRemoteCommand
)
val
preCommands
:
List
[
String
]
=
config
(
"pre_commands"
,
default
=
Nil
,
freeVar
=
false
)
private
def
changeScript
(
file
:
File
)
:
Unit
=
{
val
lines
=
Source
.
fromFile
(
file
).
getLines
().
toList
val
writer
=
new
PrintWriter
(
file
)
...
...
@@ -111,7 +113,7 @@ trait BiopetCommandLineFunction extends CommandLineResources { biopetFunction =>
* Checks executable. Follow full CanonicalPath, checks if it is existing and do a md5sum on it to store in job report
*/
protected
[
core
]
def
preProcessExecutable
()
{
val
exe
=
BiopetCommandLineFunction
.
preProcessExecutable
(
executable
)
val
exe
=
BiopetCommandLineFunction
.
preProcessExecutable
(
executable
,
preCommands
)
exe
.
path
.
foreach
(
executable
=
_
)
addJobReportBinding
(
"md5sum_exe"
,
exe
.
md5
.
getOrElse
(
"N/A"
))
}
...
...
@@ -219,7 +221,8 @@ trait BiopetCommandLineFunction extends CommandLineResources { biopetFunction =>
*/
override
final
def
commandLine
:
String
=
{
preCmdInternal
()
val
cmd
=
cmdLine
+
val
cmd
=
preCommands
.
mkString
(
"\n"
,
"\n"
,
"\n"
)
+
cmdLine
+
stdinFile
.
map
(
file
=>
" < "
+
required
(
file
.
getAbsoluteFile
)).
getOrElse
(
""
)
+
stdoutFile
.
map
(
file
=>
" > "
+
required
(
file
.
getAbsoluteFile
)).
getOrElse
(
""
)
addJobReportBinding
(
"command"
,
cmd
)
...
...
@@ -240,13 +243,18 @@ object BiopetCommandLineFunction extends Logging {
private
[
core
]
val
executableCache
:
mutable.Map
[
String
,
String
]
=
mutable
.
Map
()
case
class
Executable
(
path
:
Option
[
String
],
md5
:
Option
[
String
])
def
preProcessExecutable
(
executable
:
String
)
:
Executable
=
{
def
preProcessExecutable
(
executable
:
String
,
pre_commands
:
List
[
String
]
=
Nil
)
:
Executable
=
{
if
(!
BiopetCommandLineFunction
.
executableMd5Cache
.
contains
(
executable
))
{
if
(
executable
!=
null
)
{
if
(!
BiopetCommandLineFunction
.
executableCache
.
contains
(
executable
))
{
try
{
val
buffer
=
new
StringBuffer
()
val
cmd
=
Seq
(
"which"
,
executable
)
val
tempFile
=
File
.
createTempFile
(
"which."
,
".sh"
)
val
writer
=
new
PrintWriter
(
tempFile
)
pre_commands
.
foreach
(
cmd
=>
writer
.
println
(
cmd
+
" > /dev/null 2> /dev/null"
))
writer
.
println
(
s
"which $executable"
)
writer
.
close
()
val
cmd
=
Seq
(
"bash"
,
tempFile
.
getAbsolutePath
)
val
process
=
Process
(
cmd
).
run
(
ProcessLogger
(
buffer
.
append
(
_
)))
if
(
process
.
exitValue
==
0
)
{
val
file
=
new
File
(
buffer
.
toString
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment