From f5ef963acdd1db4f0a6cd6173ff269a01e0e697b Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Fri, 3 Aug 2012 00:46:39 +0200 Subject: [PATCH] Refactor detection of OS X to SystemReader Change-Id: I34e9ba4a26f7af5b88140c070f02a7990f1941af --- .../jgit/dircache/DirCacheCheckout.java | 2 +- .../src/org/eclipse/jgit/util/FS_POSIX.java | 19 ++----------------- .../org/eclipse/jgit/util/SystemReader.java | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java index 6e417b33b..1d8c0d01b 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java @@ -1024,7 +1024,7 @@ public class DirCacheCheckout { private static boolean isValidPathSegment(CanonicalTreeParser t) { String osName = SystemReader.getInstance().getProperty("os.name"); boolean isWindows = "Windows".equals(osName); - boolean isOSX = "Darwin".equals(osName) || "Mac OS X".equals(osName); + boolean isOSX = SystemReader.getInstance().isMacOS(); boolean ignCase = isOSX || isWindows; int ptr = t.getNameOffset(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java index 36d3b9484..742afe135 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java +++ b/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.nio.charset.Charset; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -58,7 +56,7 @@ abstract class FS_POSIX extends FS { if (gitExe != null) return gitExe.getParentFile().getParentFile(); - if (isMacOS()) { + if (SystemReader.getInstance().isMacOS()) { // On MacOSX, PATH is shorter when Eclipse is launched from the // Finder than from a terminal. Therefore try to launch bash as a // login shell and search using that. @@ -87,10 +85,7 @@ abstract class FS_POSIX extends FS { @Override public boolean isCaseSensitive() { - if (isMacOS()) - return false; - else - return true; + return !SystemReader.getInstance().isMacOS(); } @Override @@ -105,14 +100,4 @@ abstract class FS_POSIX extends FS { proc.command(argv); return proc; } - - private static boolean isMacOS() { - final String osDotName = AccessController - .doPrivileged(new PrivilegedAction() { - public String run() { - return System.getProperty("os.name"); - } - }); - return "Mac OS X".equals(osDotName) || "Darwin".equals(osDotName); - } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java index 4181a2fb2..4298fbcf7 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java +++ b/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.net.InetAddress; import java.net.UnknownHostException; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Locale; @@ -237,4 +239,17 @@ public abstract class SystemReader { return DateFormat.getDateTimeInstance(dateStyle, timeStyle); } + /** + * @return true if we are running on Mac OS X + */ + public boolean isMacOS() { + String osDotName = AccessController + .doPrivileged(new PrivilegedAction() { + public String run() { + return getProperty("os.name"); + } + }); + return "Mac OS X".equals(osDotName) || "Darwin".equals(osDotName); + } + }