Browse Source

chmod not supported on windows

master
Jonathan Cobb 4 years ago
parent
commit
8cdea3ac79
2 changed files with 16 additions and 5 deletions
  1. +12
    -5
      src/main/java/org/cobbzilla/util/io/TempDir.java
  2. +4
    -0
      src/main/java/org/cobbzilla/util/system/OsType.java

+ 12
- 5
src/main/java/org/cobbzilla/util/io/TempDir.java View File

@@ -23,6 +23,7 @@ import static org.cobbzilla.util.daemon.ZillaRuntime.*;
import static org.cobbzilla.util.io.FileUtil.abs; import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.io.FileUtil.getDefaultTempDir; import static org.cobbzilla.util.io.FileUtil.getDefaultTempDir;
import static org.cobbzilla.util.system.CommandShell.chmod; import static org.cobbzilla.util.system.CommandShell.chmod;
import static org.cobbzilla.util.system.OsType.isWindows;
import static org.cobbzilla.util.system.Sleep.sleep; import static org.cobbzilla.util.system.Sleep.sleep;


/** /**
@@ -105,21 +106,27 @@ public class TempDir extends File implements Closeable {


public TempDir () { this("700"); } public TempDir () { this("700"); }


public TempDir (File dir) { this(dir, "700"); }
public TempDir (File dir) { this(dir, "700", !isWindows()); }
public TempDir (File dir, boolean doChmod) { this(dir, "700", doChmod); }


public TempDir (String chmod) { this(null, chmod); }
public TempDir (String chmod) { this(null, chmod, !isWindows()); }


public TempDir (File dir, String chmod) {
public TempDir (File dir, String chmod) { this(dir, chmod, !isWindows()); }

public TempDir (File dir, String chmod, boolean doChmod) {
super(abs(_tempdir(dir))); super(abs(_tempdir(dir)));
file = new File(super.getPath()); file = new File(super.getPath());
chmod(file, chmod);
if (doChmod) {
if (isWindows()) die("TempDir: chmod not supported on Windows");
chmod(file, chmod);
}
} }


private static Path _tempdir(File dir) { private static Path _tempdir(File dir) {
try { try {
final Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwx------"); final Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwx------");
return dir == null return dir == null
? Files.createTempDirectory("tempDir", PosixFilePermissions.asFileAttribute(perms))
? Files.createTempDirectory( "tempDir", PosixFilePermissions.asFileAttribute(perms))
: Files.createTempDirectory(dir.toPath(), "tempDir", PosixFilePermissions.asFileAttribute(perms)); : Files.createTempDirectory(dir.toPath(), "tempDir", PosixFilePermissions.asFileAttribute(perms));
} catch (IOException e) { } catch (IOException e) {
return die("_tempdir: "+shortError(e), e); return die("_tempdir: "+shortError(e), e);


+ 4
- 0
src/main/java/org/cobbzilla/util/system/OsType.java View File

@@ -13,6 +13,10 @@ public enum OsType {


public static final OsType CURRENT_OS = initCurrentOs(); public static final OsType CURRENT_OS = initCurrentOs();


public static boolean isWindows () { return CURRENT_OS == windows; }
public static boolean isMac () { return CURRENT_OS == macosx; }
public static boolean isLinux () { return CURRENT_OS == linux; }

private static OsType initCurrentOs() { private static OsType initCurrentOs() {
if (Platform.isWindows()) return windows; if (Platform.isWindows()) return windows;
if (Platform.isMac()) return macosx; if (Platform.isMac()) return macosx;


Loading…
Cancel
Save