From a31b3687f1286dac404e99f4a9835323ab6c0329 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Tue, 15 Dec 2020 12:50:40 -0500 Subject: [PATCH] remove dependency on google io for TempDir --- .../java/org/cobbzilla/util/io/TempDir.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/cobbzilla/util/io/TempDir.java b/src/main/java/org/cobbzilla/util/io/TempDir.java index b32c10d..2203ff9 100644 --- a/src/main/java/org/cobbzilla/util/io/TempDir.java +++ b/src/main/java/org/cobbzilla/util/io/TempDir.java @@ -1,16 +1,20 @@ package org.cobbzilla.util.io; -import com.google.common.io.Files; import lombok.AllArgsConstructor; -import lombok.Delegate; import lombok.Getter; import lombok.Setter; +import lombok.experimental.Delegate; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import java.io.Closeable; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.attribute.PosixFilePermission; +import java.nio.file.attribute.PosixFilePermissions; +import java.util.Set; import java.util.SortedSet; import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.TimeUnit; @@ -97,16 +101,25 @@ public class TempDir extends File implements Closeable { private interface TempDirOverrides { boolean delete(); } @Delegate(excludes=TempDirOverrides.class) - private File file; + private final File file; public TempDir () { this("700"); } public TempDir (String chmod) { - super(abs(Files.createTempDir())); + super(abs(_tempdir())); file = new File(super.getPath()); chmod(file, chmod); } + private static Path _tempdir() { + try { + final Set perms = PosixFilePermissions.fromString("rwx------"); + return Files.createTempDirectory("tempDir", PosixFilePermissions.asFileAttribute(perms)); + } catch (IOException e) { + return die("_tempdir: "+shortError(e), e); + } + } + public void killAfter (long t) { killAfter(this, t); }