Skip to content

Commit 263060b

Browse files
committed
Attempt to ensure permissions maintained on GenomicsDB output after copy
1 parent 4b4a08c commit 263060b

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/AbstractGenomicsDBImportHandler.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,15 @@
3737
import java.io.BufferedReader;
3838
import java.io.File;
3939
import java.io.IOException;
40+
import java.nio.file.Files;
41+
import java.nio.file.attribute.PosixFilePermission;
42+
import java.nio.file.attribute.PosixFilePermissions;
4043
import java.util.ArrayList;
4144
import java.util.Arrays;
4245
import java.util.Collection;
4346
import java.util.Collections;
4447
import java.util.Date;
48+
import java.util.EnumSet;
4549
import java.util.HashSet;
4650
import java.util.LinkedHashSet;
4751
import java.util.List;
@@ -331,7 +335,19 @@ private void copyTopLevelFiles(PipelineJob job, File sourceWorkspace, File desti
331335
dest.delete();
332336
}
333337

338+
Set<PosixFilePermission> expected = PosixFilePermissions.fromString("rw-rw----");
339+
if (!Files.getPosixFilePermissions(source.toPath()).containsAll(expected))
340+
{
341+
job.getLogger().debug("Setting POSIX permissions on file: " + source.getPath());
342+
Files.setPosixFilePermissions(source.toPath(), expected);
343+
}
344+
334345
FileUtils.copyFile(source, dest);
346+
if (!Files.getPosixFilePermissions(dest.toPath()).containsAll(expected))
347+
{
348+
job.getLogger().debug("Setting POSIX permissions on file: " + dest.getPath());
349+
Files.setPosixFilePermissions(dest.toPath(), expected);
350+
}
335351
}
336352

337353
File metaDir = new File(sourceWorkspace, "genomicsdb_meta_dir");

0 commit comments

Comments
 (0)