From 14b358a6fbe2aa9f04a1bb6a27812458af6a755e Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Tue, 28 Dec 2010 17:15:08 +0100 Subject: [PATCH] Refactor search for a file within a PATH Change-Id: I785ab6bf1823d174394b1d2b25c5bb202535e943 --- org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java | 11 +++++++++++ .../src/org/eclipse/jgit/util/FS_Win32_Cygwin.java | 12 ++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java index 9e817ca77..2287f68fa 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java @@ -199,4 +199,15 @@ public String run() { return null; return new File(home).getAbsoluteFile(); } + + static File searchPath(final String path, final String... lookFor) { + for (final String p : path.split(File.pathSeparator)) { + for (String command : lookFor) { + final File e = new File(p, command); + if (e.isFile()) + return e.getAbsoluteFile(); + } + } + return null; + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java index 39f2c03a0..0af955f94 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java @@ -62,14 +62,10 @@ public String run() { }); if (path == null) return false; - for (final String p : path.split(";")) { - final File e = new File(p, "cygpath.exe"); - if (e.isFile()) { - cygpath = e.getAbsolutePath(); - return true; - } - } - return false; + File found = FS.searchPath(path, "cygpath.exe"); + if (found != null) + cygpath = found.getPath(); + return cygpath != null; } public File resolve(final File dir, final String pn) {