diff --git a/public/java/src/org/broadinstitute/sting/utils/R/RScriptExecutor.java b/public/java/src/org/broadinstitute/sting/utils/R/RScriptExecutor.java index 0d6450c8f..04205350f 100644 --- a/public/java/src/org/broadinstitute/sting/utils/R/RScriptExecutor.java +++ b/public/java/src/org/broadinstitute/sting/utils/R/RScriptExecutor.java @@ -110,15 +110,17 @@ public class RScriptExecutor { List tempFiles = new ArrayList(); try { - File tempLibDir = IOUtils.tempDir("Rlib.", ""); - tempFiles.add(tempLibDir); + File tempLibSourceDir = IOUtils.tempDir("RlibSources.", ""); + File tempLibInstallationDir = IOUtils.tempDir("Rlib.", ""); + tempFiles.add(tempLibSourceDir); + tempFiles.add(tempLibInstallationDir); - StringBuilder expression = new StringBuilder("tempLibDir = '").append(tempLibDir).append("';"); + StringBuilder expression = new StringBuilder("tempLibDir = '").append(tempLibInstallationDir).append("';"); if (this.libraries.size() > 0) { List tempLibraryPaths = new ArrayList(); for (RScriptLibrary library: this.libraries) { - File tempLibrary = library.writeTemp(); + File tempLibrary = library.writeLibrary(tempLibSourceDir); tempFiles.add(tempLibrary); tempLibraryPaths.add(tempLibrary.getAbsolutePath()); } diff --git a/public/java/src/org/broadinstitute/sting/utils/R/RScriptLibrary.java b/public/java/src/org/broadinstitute/sting/utils/R/RScriptLibrary.java index 685979d83..93110ccdc 100644 --- a/public/java/src/org/broadinstitute/sting/utils/R/RScriptLibrary.java +++ b/public/java/src/org/broadinstitute/sting/utils/R/RScriptLibrary.java @@ -57,4 +57,10 @@ public enum RScriptLibrary { public File writeTemp() { return IOUtils.writeTempResource(new Resource(getResourcePath(), RScriptLibrary.class)); } + + public File writeLibrary(File tempDir) { + File libraryFile = new File(tempDir, getLibraryName()); + IOUtils.writeResource(new Resource(getResourcePath(), RScriptLibrary.class), libraryFile); + return libraryFile; + } }