mergetools: create mergetool_find_win32_cmd() helper function for winmerge

Signed-off-by: Jacob Nisnevich <jacob.nisnevich@gmail.com> Acked-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jacob Nisnevich committed Mar 25, 2016 at 16:17 UTC e36d716751d3477694325e1ff2ece33747133a5b
2 files changed +26 -20
git-mergetool--lib.sh
+25
@@ -372,3 +372,28 @@ get_merge_tool () {
372 fi
373 echo "$merge_tool"
374 }
375 +
376 +mergetool_find_win32_cmd () {
377 + executable=$1
378 + sub_directory=$2
379 +
380 + # Use $executable if it exists in $PATH
381 + if type -p "$executable" >/dev/null 2>&1
382 + then
383 + printf '%s' "$executable"
384 + return
385 + fi
386 +
387 + # Look for executable in the typical locations
388 + for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' |
389 + cut -d '=' -f 2- | sort -u)
390 + do
391 + if test -n "$directory" && test -x "$directory/$sub_directory/$executable"
392 + then
393 + printf '%s' "$directory/$sub_directory/$executable"
394 + return
395 + fi
396 + done
397 +
398 + printf '%s' "$executable"
399 +}
mergetools/winmerge
+1 -20
@@ -13,24 +13,5 @@ merge_cmd () {
13 }
14
15 translate_merge_tool_path() {
16 - # Use WinMergeU.exe if it exists in $PATH
17 - if type -p WinMergeU.exe >/dev/null 2>&1
18 - then
19 - printf WinMergeU.exe
20 - return
21 - fi
22 -
23 - # Look for WinMergeU.exe in the typical locations
24 - winmerge_exe="WinMerge/WinMergeU.exe"
25 - for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' |
26 - cut -d '=' -f 2- | sort -u)
27 - do
28 - if test -n "$directory" && test -x "$directory/$winmerge_exe"
29 - then
30 - printf '%s' "$directory/$winmerge_exe"
31 - return
32 - fi
33 - done
34 -
35 - printf WinMergeU.exe
16 + mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge"
17 }