Browse Source

Refactor detection of OS X to SystemReader

Change-Id: I34e9ba4a26f7af5b88140c070f02a7990f1941af
stable-2.1
Robin Rosenberg 12 years ago
parent
commit
f5ef963acd
  1. 2
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
  2. 19
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
  3. 15
      org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java

2
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java vendored

@ -1024,7 +1024,7 @@ public class DirCacheCheckout {
private static boolean isValidPathSegment(CanonicalTreeParser t) { private static boolean isValidPathSegment(CanonicalTreeParser t) {
String osName = SystemReader.getInstance().getProperty("os.name"); String osName = SystemReader.getInstance().getProperty("os.name");
boolean isWindows = "Windows".equals(osName); boolean isWindows = "Windows".equals(osName);
boolean isOSX = "Darwin".equals(osName) || "Mac OS X".equals(osName); boolean isOSX = SystemReader.getInstance().isMacOS();
boolean ignCase = isOSX || isWindows; boolean ignCase = isOSX || isWindows;
int ptr = t.getNameOffset(); int ptr = t.getNameOffset();

19
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java

@ -44,8 +44,6 @@ package org.eclipse.jgit.util;
import java.io.File; import java.io.File;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -58,7 +56,7 @@ abstract class FS_POSIX extends FS {
if (gitExe != null) if (gitExe != null)
return gitExe.getParentFile().getParentFile(); return gitExe.getParentFile().getParentFile();
if (isMacOS()) { if (SystemReader.getInstance().isMacOS()) {
// On MacOSX, PATH is shorter when Eclipse is launched from the // On MacOSX, PATH is shorter when Eclipse is launched from the
// Finder than from a terminal. Therefore try to launch bash as a // Finder than from a terminal. Therefore try to launch bash as a
// login shell and search using that. // login shell and search using that.
@ -87,10 +85,7 @@ abstract class FS_POSIX extends FS {
@Override @Override
public boolean isCaseSensitive() { public boolean isCaseSensitive() {
if (isMacOS()) return !SystemReader.getInstance().isMacOS();
return false;
else
return true;
} }
@Override @Override
@ -105,14 +100,4 @@ abstract class FS_POSIX extends FS {
proc.command(argv); proc.command(argv);
return proc; return proc;
} }
private static boolean isMacOS() {
final String osDotName = AccessController
.doPrivileged(new PrivilegedAction<String>() {
public String run() {
return System.getProperty("os.name");
}
});
return "Mac OS X".equals(osDotName) || "Darwin".equals(osDotName);
}
} }

15
org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java

@ -49,6 +49,8 @@ package org.eclipse.jgit.util;
import java.io.File; import java.io.File;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Locale; import java.util.Locale;
@ -237,4 +239,17 @@ public abstract class SystemReader {
return DateFormat.getDateTimeInstance(dateStyle, timeStyle); return DateFormat.getDateTimeInstance(dateStyle, timeStyle);
} }
/**
* @return true if we are running on Mac OS X
*/
public boolean isMacOS() {
String osDotName = AccessController
.doPrivileged(new PrivilegedAction<String>() {
public String run() {
return getProperty("os.name");
}
});
return "Mac OS X".equals(osDotName) || "Darwin".equals(osDotName);
}
} }

Loading…
Cancel
Save