mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 17:59:11 +08:00
Merge pull request #865 from janschulz/where_is_git
better git path handling
This commit is contained in:
commit
7eb7255741
51
vendor/init.bat
vendored
51
vendor/init.bat
vendored
@ -40,24 +40,55 @@ if not exist "%CMDER_ROOT%\config\settings" (
|
|||||||
set PLINK_PROTOCOL=ssh
|
set PLINK_PROTOCOL=ssh
|
||||||
if not defined TERM set TERM=cygwin
|
if not defined TERM set TERM=cygwin
|
||||||
|
|
||||||
:: Check if msysgit is installed
|
:: The idea:
|
||||||
if exist "%ProgramFiles%\Git" (
|
:: * if the users points as to a specific git, use that
|
||||||
set "GIT_INSTALL_ROOT=%ProgramFiles%\Git"
|
:: * test if a git is in path and if yes, use that
|
||||||
) else if exist "%ProgramFiles(x86)%\Git" (
|
:: * last, use our vendored git
|
||||||
set "GIT_INSTALL_ROOT=%ProgramFiles(x86)%\Git"
|
:: also check that we have a recent enough version of git (e.g. test for GIT\cmd\git.exe)
|
||||||
) else if exist "%USERPROFILE%\AppData\Local\Programs\Git" (
|
if defined GIT_INSTALL_ROOT (
|
||||||
set "GIT_INSTALL_ROOT=%USERPROFILE%\AppData\Local\Programs\Git"
|
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" (goto :FOUND_GIT)
|
||||||
) else if exist "%CMDER_ROOT%\vendor\git-for-windows" (
|
|
||||||
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
:: check if git is in path...
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
for /F "delims=" %%F in ('where git.exe') do @(
|
||||||
|
pushd %%~dpF
|
||||||
|
cd ..
|
||||||
|
set "test_dir=!CD!"
|
||||||
|
popd
|
||||||
|
if exist "!test_dir!\cmd\git.exe" (
|
||||||
|
set GIT_INSTALL_ROOT=!test_dir!
|
||||||
|
set test_dir=
|
||||||
|
goto :FOUND_GIT
|
||||||
|
) else (
|
||||||
|
echo Found old git version in "!test_dir!", but not using...
|
||||||
|
set test_dir=
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
:: our last hope: our own git...
|
||||||
|
:VENDORED_GIT
|
||||||
|
if exist "%CMDER_ROOT%\vendor\git-for-windows" (
|
||||||
|
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
|
||||||
|
rem add the minimal git commands to the front of the path
|
||||||
|
set "PATH=%GIT_INSTALL_ROOT%\cmd;%PATH%"
|
||||||
|
) else (
|
||||||
|
goto :NO_GIT
|
||||||
|
)
|
||||||
|
|
||||||
|
:FOUND_GIT
|
||||||
:: Add git to the path
|
:: Add git to the path
|
||||||
if defined GIT_INSTALL_ROOT (
|
if defined GIT_INSTALL_ROOT (
|
||||||
set "PATH=%GIT_INSTALL_ROOT%\bin;%GIT_INSTALL_ROOT%\usr\bin;%GIT_INSTALL_ROOT%\usr\share\vim\vim74;%PATH%"
|
rem add the unix commands at the end to not shadow windows commands like more
|
||||||
|
echo Enhancing PATH with unix commands from git [%GIT_INSTALL_ROOT%]
|
||||||
|
set "PATH=%PATH%;%GIT_INSTALL_ROOT%\usr\bin;%GIT_INSTALL_ROOT%\usr\share\vim\vim74"
|
||||||
:: define SVN_SSH so we can use git svn with ssh svn repositories
|
:: define SVN_SSH so we can use git svn with ssh svn repositories
|
||||||
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
|
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
:NO_GIT
|
||||||
|
endlocal & set PATH=%PATH% & set SVN_SSH=%SVN_SSH% & set GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%
|
||||||
|
|
||||||
:: Enhance Path
|
:: Enhance Path
|
||||||
set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%\"
|
set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%\"
|
||||||
|
|
||||||
|
2
vendor/profile.ps1
vendored
2
vendor/profile.ps1
vendored
@ -41,6 +41,8 @@ try {
|
|||||||
# Check if git is on PATH, i.e. Git already installed on system
|
# Check if git is on PATH, i.e. Git already installed on system
|
||||||
Get-command -Name "git" -ErrorAction Stop >$null
|
Get-command -Name "git" -ErrorAction Stop >$null
|
||||||
} catch {
|
} catch {
|
||||||
|
$env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\cmd")
|
||||||
|
# for bash.exe, which in the cmd version is found as <GIT>\usr\bin\bash.exe
|
||||||
$env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\bin")
|
$env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\bin")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user