From 1eb03dd1b81d5b1c61686312bf3256d15c6b29b0 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 2 Dec 2018 11:44:18 -0500 Subject: [PATCH 1/4] add '/prefer_nix' switch to init.bat --- vendor/init.bat | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index 1a5c1bb..60fcd7c 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -14,6 +14,7 @@ set debug_output=0 set time_init=0 set fast_init=0 set max_depth=1 +set prefer_windows_commands=1 set "CMDER_USER_FLAGS= " :: Find root dir @@ -90,6 +91,9 @@ call "%cmder_root%\vendor\lib\lib_profile" ) else if /i "%1" == "/svn_ssh" ( set SVN_SSH=%2 shift + ) else if /i "%1" == "/prefer_nix" ( + set prefer_windows_commands=0 + shift ) else ( set "CMDER_USER_FLAGS=%1 %CMDER_USER_FLAGS%" ) @@ -233,18 +237,25 @@ goto :CONFIGURE_GIT :: Add git to the path if defined GIT_INSTALL_ROOT ( rem add the unix commands at the end to not shadow windows commands like more - if exist "!GIT_INSTALL_ROOT!\cmd\git.exe" %lib_path% enhance_path "!GIT_INSTALL_ROOT!\cmd" append - if exist "!GIT_INSTALL_ROOT!\mingw32" ( - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw32\bin" append - ) else if exist "!GIT_INSTALL_ROOT!\mingw64" ( - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw64\bin" append + if "%prefer_windows_commands%" == "1" ( + echo PREFERRING WINDOWS COMMANDS + set "path_position=append" + ) else ( + echo PREFERRING UNIX COMMANDS + set "path_position=" ) - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\usr\bin" append + if exist "!GIT_INSTALL_ROOT!\cmd\git.exe" %lib_path% enhance_path "!GIT_INSTALL_ROOT!\cmd" !path_position! + if exist "!GIT_INSTALL_ROOT!\mingw32" ( + %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw32\bin" !path_position! + ) else if exist "!GIT_INSTALL_ROOT!\mingw64" ( + %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw64\bin" !path_position! + ) + %lib_path% enhance_path "!GIT_INSTALL_ROOT!\usr\bin" !path_position! :: 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" - for /F "delims=" %%F in ('env /usr/bin/locale -uU 2') do ( + for /F "delims=" %%F in ('%GIT_INSTALL_ROOT%\usr\bin\env /usr/bin/locale -uU 2') do ( set "LANG=%%F" ) ) From fcab51da2b25f3ba730ddbb95a00f00128e72f80 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 2 Dec 2018 11:46:23 -0500 Subject: [PATCH 2/4] remove file --- vendor/init.bat.orig | 432 ------------------------------------------- 1 file changed, 432 deletions(-) delete mode 100644 vendor/init.bat.orig diff --git a/vendor/init.bat.orig b/vendor/init.bat.orig deleted file mode 100644 index e4b7e36..0000000 --- a/vendor/init.bat.orig +++ /dev/null @@ -1,432 +0,0 @@ -@echo off - -set CMDER_INIT_START=%time% - -:: Init Script for cmd.exe -:: Created as part of cmder project - -:: !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED -:: !!! Use "%CMDER_ROOT%\config\user_profile.cmd" to add your own startup commands - -:: Use /v command line arg or set to > 0 for verbose output to aid in debugging. -set verbose_output=0 -set debug_output=0 -set time_init=0 -set fast_init=0 -set max_depth=1 -set prefer_windows_commands=1 -set "CMDER_USER_FLAGS= " - -:: Find root dir -if not defined CMDER_ROOT ( - if defined ConEmuDir ( - for /f "delims=" %%i in ("%ConEmuDir%\..\..") do ( - set "CMDER_ROOT=%%~fi" - ) - ) else ( - for /f "delims=" %%i in ("%~dp0\..") do ( - set "CMDER_ROOT=%%~fi" - ) - ) -) - -:: Remove trailing '\' from %CMDER_ROOT% -if "%CMDER_ROOT:~-1%" == "\" SET "CMDER_ROOT=%CMDER_ROOT:~0,-1%" - -call "%cmder_root%\vendor\bin\cexec.cmd" /setpath -call "%cmder_root%\vendor\lib\lib_base" -call "%cmder_root%\vendor\lib\lib_path" -call "%cmder_root%\vendor\lib\lib_console" -call "%cmder_root%\vendor\lib\lib_git" -call "%cmder_root%\vendor\lib\lib_profile" - -:var_loop - if "%~1" == "" ( - goto :start - ) else if /i "%1" == "/f" ( - set fast_init=1 - ) else if /i "%1" == "/t" ( - set time_init=1 - ) else if /i "%1"=="/v" ( - set verbose_output=1 - ) else if /i "%1"=="/d" ( - set debug_output=1 - ) else if /i "%1" == "/max_depth" ( - if "%~2" geq "1" if "%~2" leq "5" ( - set "max_depth=%~2" - shift - ) else ( - %lib_console% show_error "'/max_depth' requires a number between 1 and 5!" - exit /b - ) - ) else if /i "%1" == "/c" ( - if exist "%~2" ( - if not exist "%~2\bin" mkdir "%~2\bin" - set "cmder_user_bin=%~2\bin" - if not exist "%~2\config\profile.d" mkdir "%~2\config\profile.d" - set "cmder_user_config=%~2\config" - shift - ) - ) else if /i "%1" == "/user_aliases" ( - if exist "%~2" ( - set "user_aliases=%~2" - shift - ) - ) else if /i "%1" == "/git_install_root" ( - if exist "%~2" ( - set "GIT_INSTALL_ROOT=%~2" - shift - ) else ( - %lib_console% show_error "The Git install root folder "%~2", you specified does not exist!" - exit /b - ) - ) else if /i "%1" == "/home" ( - if exist "%~2" ( - set "HOME=%~2" - shift - ) else ( - %lib_console% show_error The home folder "%2", you specified does not exist! - exit /b - ) - ) else if /i "%1" == "/svn_ssh" ( - set SVN_SSH=%2 - shift - ) else if /i "%1" == "/prefer_nix" ( - set prefer_windows_commands=0 - shift - ) else ( - set "CMDER_USER_FLAGS=%1 %CMDER_USER_FLAGS%" - ) - shift -goto var_loop - -:start -:: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES -%lib_base% cmder_shell -%lib_console% debug_output init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%" -%lib_console% debug_output init.bat "Env Var - debug_output=%debug_output%" - -if defined CMDER_USER_CONFIG ( - %lib_console% debug_output init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%CMDER_USER_CONFIG%'!" -) - -:: Pick right version of clink -if "%PROCESSOR_ARCHITECTURE%"=="x86" ( - set architecture=86 - set architecture_bits=32 -) else ( - set architecture=64 - set architecture_bits=64 -) - -if "%CMDER_CLINK%" == "1" ( - %lib_console% verbose_output "Injecting Clink!" - - :: Run clink - if defined CMDER_USER_CONFIG ( - if not exist "%CMDER_USER_CONFIG%\settings" ( - echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" - echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ - ) - "%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" - ) else ( - if not exist "%CMDER_ROOT%\config\settings" ( - echo Generating clink initial settings in "%CMDER_ROOT%\config\settings" - echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. - ) - "%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor" - ) -) else ( - %lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" -) - -:: Prepare for git-for-windows - -:: I do not even know, copypasted from their .bat -set PLINK_PROTOCOL=ssh -if not defined TERM set TERM=cygwin - -:: The idea: -:: * if the users points as to a specific git, use that -:: * test if a git is in path and if yes, use that -:: * last, use our vendored git -:: also check that we have a recent enough version of git by examining the version string -setlocal enabledelayedexpansion -if defined GIT_INSTALL_ROOT ( - if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT -) else if "%fast_init%" == "1" ( - if exist "%CMDER_ROOT%\vendor\git-for-windows\cmd\git.exe" ( - %lib_console% debug_output "Skipping Git Auto-Detect!" - goto :VENDORED_GIT - ) -) - -%lib_console% debug_output init.bat "Looking for Git install root..." - -:: get the version information for vendored git binary -%lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" -%lib_git% validate_version VENDORED %GIT_VERSION_VENDORED% - -:: check if git is in path... -for /F "delims=" %%F in ('where git.exe 2^>nul') do ( - :: get the absolute path to the user provided git binary - pushd %%~dpF - :: check if there's shim - and if yes follow the path - if exist git.shim ( - for /F "tokens=2 delims== " %%I in (git.shim) do ( - pushd %%~dpI - set "test_dir=!CD!" - popd - ) - ) else ( - set "test_dir=!CD!" - ) - popd - - :: get the version information for the user provided git binary - %lib_git% read_version USER "!test_dir!" - %lib_git% validate_version USER !GIT_VERSION_USER! - - if !errorlevel! geq 0 ( - :: compare the user git version against the vendored version - %lib_git% compare_versions USER VENDORED - - :: use the user provided git if its version is greater than, or equal to the vendored git - if !errorlevel! geq 0 if exist "!test_dir:~0,-4!\cmd\git.exe" ( - set "GIT_INSTALL_ROOT=!test_dir:~0,-4!" - set test_dir= - goto :FOUND_GIT - ) else if !errorlevel! geq 0 ( - set "GIT_INSTALL_ROOT=!test_dir!" - set test_dir= - goto :FOUND_GIT - ) else ( - call :verbose_output Found old !GIT_VERSION_USER! in "!test_dir!", but not using... - set test_dir= - ) - ) else ( - - :: if the user provided git executable is not found - if !errorlevel! equ -255 ( - call :verbose_output No git at "!git_executable!" found. - 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" - %lib_console% debug_output "Using vendored Git from '!GIT_INSTALL_ROOT!..." - goto :CONFIGURE_GIT -) else ( - goto :NO_GIT -) - -:SPECIFIED_GIT -%lib_console% debug_output "Using /GIT_INSTALL_ROOT from '%GIT_INSTALL_ROOT%..." -goto :CONFIGURE_GIT - -:FOUND_GIT -%lib_console% debug_output "Using found Git from '%GIT_INSTALL_ROOT%..." -goto :CONFIGURE_GIT - -:CONFIGURE_GIT -:: Add git to the path -if defined GIT_INSTALL_ROOT ( - rem add the unix commands at the end to not shadow windows commands like more - if "%prefer_windows_commands%" == "1" ( - echo PREFERRING WINDOWS COMMANDS - set "path_position=append" - ) else ( - echo PREFERRING UNIX COMMANDS - set "path_position=" - ) - - if exist "!GIT_INSTALL_ROOT!\cmd\git.exe" %lib_path% enhance_path "!GIT_INSTALL_ROOT!\cmd" !path_position! - if exist "!GIT_INSTALL_ROOT!\mingw32" ( - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw32\bin" !path_position! - ) else if exist "!GIT_INSTALL_ROOT!\mingw64" ( - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\mingw64\bin" !path_position! - ) - %lib_path% enhance_path "!GIT_INSTALL_ROOT!\usr\bin" !path_position! - :: 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" -<<<<<<< HEAD - - for /F "delims=" %%F in ('%GIT_INSTALL_ROOT%\usr\bin\env /usr/bin/locale -uU 2') do ( - set "LANG=%%F" -======= - - if not defined LANG ( - :: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path. - if not defined git_locale if exist "!GIT_INSTALL_ROOT!\usr\bin\locale.exe" set git_locale="!GIT_INSTALL_ROOT!\usr\bin\locale.exe" - if not defined git_locale for /F "delims=" %%F in ('where locale.exe 2^>nul') do (if not defined git_locale set git_locale="%%F") - if not defined git_locale if exist "!GIT_INSTALL_ROOT!\usr\bin\env.exe" set git_locale="!GIT_INSTALL_ROOT!\usr\bin\env.exe" /usr/bin/locale - if not defined git_locale set git_locale=env /usr/bin/locale - for /F "delims=" %%F in ('!git_locale! -uU 2') do ( - set "LANG=%%F" - ) ->>>>>>> 3163d6d1c3b8b027390f35fa618cfab37d73a865 - ) -) - -endlocal & set "PATH=%PATH%" & set "LANG=%LANG%" & set "SVN_SSH=%SVN_SSH%" & set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" -%lib_console% debug_output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" -%lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" -goto :PATH_ENHANCE - -:NO_GIT -:: Skip this if GIT WAS FOUND else we did 'endlocal' above! -endlocal - -:PATH_ENHANCE -%lib_path% enhance_path "%CMDER_ROOT%\vendor\bin" -%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" %max_depth% -if defined CMDER_USER_BIN ( - %lib_path% enhance_path_recursive "%CMDER_USER_BIN%" %max_depth% -) -%lib_path% enhance_path "%CMDER_ROOT%" append - -:: Drop *.bat and *.cmd files into "%CMDER_ROOT%\config\profile.d" -:: to run them at startup. -%lib_profile% run_profile_d "%CMDER_ROOT%\config\profile.d" -if defined CMDER_USER_CONFIG ( - %lib_profile% run_profile_d "%CMDER_USER_CONFIG%\profile.d" -) - -:: Allows user to override default aliases store using profile.d -:: scripts run above by setting the 'aliases' env variable. -:: -:: Note: If overriding default aliases store file the aliases -:: must also be self executing, see '.\user_aliases.cmd.example', -:: and be in profile.d folder. -if not defined user_aliases ( - if defined CMDER_USER_CONFIG ( - set "user_aliases=%CMDER_USER_CONFIG%\user_aliases.cmd" - ) else ( - set "user_aliases=%CMDER_ROOT%\config\user_aliases.cmd" - ) -) - -if "%CMDER_ALIASES%" == "1" ( - REM The aliases environment variable is used by alias.bat to id - REM the default file to store new aliases in. - if not defined aliases ( - set "aliases=%user_aliases%" - ) - - REM Make sure we have a self-extracting user_aliases.cmd file - setlocal enabledelayedexpansion - if not exist "%user_aliases%" ( - echo Creating initial user_aliases store in "%user_aliases%"... - copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_aliases%" - ) else ( - type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul - if "!errorlevel!" == "1" ( - echo Creating initial user_aliases store in "%user_aliases%"... - if defined CMDER_USER_CONFIG ( - copy "%user_aliases%" "%user_aliases%.old_format" - copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_aliases%" - ) else ( - copy "%user_aliases%" "%user_aliases%.old_format" - copy "%CMDER_ROOT%\vendor\user_aliases.cmd.example" "%user_aliases%" - ) - ) - ) - - :: Update old 'user_aliases' to new self executing 'user_aliases.cmd' - if exist "%CMDER_ROOT%\config\aliases" ( - echo Updating old "%CMDER_ROOT%\config\aliases" to new format... - type "%CMDER_ROOT%\config\aliases" >> "%user_aliases%" - del "%CMDER_ROOT%\config\aliases" - ) else if exist "%user_aliases%.old_format" ( - echo Updating old "%user_aliases%" to new format... - type "%user_aliases%.old_format" >> "%user_aliases%" - del "%user_aliases%.old_format" - ) - endlocal -) - -:: Add aliases to the environment -call "%user_aliases%" - -:: See vendor\git-for-windows\README.portable for why we do this -:: Basically we need to execute this post-install.bat because we are -:: manually extracting the archive rather than executing the 7z sfx -if exist "%GIT_INSTALL_ROOT%\post-install.bat" ( - %lib_console% verbose_output "Running Git for Windows one time Post Install...." - pushd "%GIT_INSTALL_ROOT%\" - "%GIT_INSTALL_ROOT%\git-bash.exe" --no-needs-console --hide --no-cd --command=post-install.bat - popd -) - -:: Set home path -if not defined HOME set "HOME=%USERPROFILE%" -%lib_console% debug_output init.bat "Env Var - HOME=%HOME%" - -set "initialConfig=%CMDER_ROOT%\config\user_profile.cmd" -if exist "%CMDER_ROOT%\config\user_profile.cmd" ( - REM Create this file and place your own command in there - %lib_console% debug_output init.bat "Calling - %CMDER_ROOT%\config\user_profile.cmd" - call "%CMDER_ROOT%\config\user_profile.cmd" -) - -if defined CMDER_USER_CONFIG ( - set "initialConfig=%CMDER_USER_CONFIG%\user_profile.cmd" - if exist "%CMDER_USER_CONFIG%\user_profile.cmd" ( - REM Create this file and place your own command in there - %lib_console% debug_output init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd - call "%CMDER_USER_CONFIG%\user_profile.cmd" - ) -) - -if not exist "%initialConfig%" ( - echo Creating user startup file: "%initialConfig%" - ( -echo :: use this file to run your own startup commands -echo :: use in front of the command to prevent printing the command -echo. -echo :: uncomment this to have the ssh agent load when cmder starts -echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-agent.cmd" -echo. -echo :: uncomment the next two lines to use pageant as the ssh authentication agent -echo :: SET SSH_AUTH_SOCK=/tmp/.ssh-pageant-auth-sock -echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-pageant.cmd" -echo. -echo :: you can add your plugins to the cmder path like so -echo :: set "PATH=%%CMDER_ROOT%%\vendor\whatever;%%PATH%%" -echo. -echo :: arguments in this batch are passed from init.bat, you can quickly parse them like so: -echo :: more useage can be seen by typing "cexec /?" -echo. -echo :: %%ccall%% "/customOption" "command/program" -echo. -echo @echo off -) >"%initialConfig%" -) - -if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMDER_ROOT%\vendor\bin\alias.cmd" ( - echo Cmder's 'alias' command has been moved into "%CMDER_ROOT%\vendor\bin\alias.cmd" - echo to get rid of this message either: - echo. - echo Delete the file "%CMDER_ROOT%\bin\alias.bat" - echo. - echo or - echo. - echo If you have customized it and want to continue using it instead of the included version - echo * Rename "%CMDER_ROOT%\bin\alias.bat" to "%CMDER_ROOT%\bin\alias.cmd". - echo * Search for 'user-aliases' and replace it with 'user_aliases'. -) - -set initialConfig= -set CMDER_CONFIGURED=1 - -set CMDER_INIT_END=%time% - -if %time_init% gtr 0 ( - "%cmder_root%\vendor\bin\timer.cmd" %CMDER_INIT_START% %CMDER_INIT_END% -) -exit /b From 8ac540ebb6b58426f78d831bad284bc1f33c47c5 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 2 Dec 2018 11:51:00 -0500 Subject: [PATCH 3/4] debug --- vendor/init.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index bac8cf2..81ce792 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -238,10 +238,10 @@ goto :CONFIGURE_GIT if defined GIT_INSTALL_ROOT ( rem add the unix commands at the end to not shadow windows commands like more if "%prefer_windows_commands%" == "1" ( - echo PREFERRING WINDOWS COMMANDS + %lib_console% debug_output init.bat "Preferring Windows commands" set "path_position=append" ) else ( - echo PREFERRING UNIX COMMANDS + %lib_console% debug_output init.bat "Preferring *nix commands" set "path_position=" ) From 0f30329e3842f782223b86b113ac30e56cc72497 Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Thu, 13 Dec 2018 21:55:08 -0500 Subject: [PATCH 4/4] Update init.bat --- vendor/init.bat | 3 --- 1 file changed, 3 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index 061642f..ed4fbca 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -106,9 +106,6 @@ call "%cmder_root%\vendor\lib\lib_profile" ) else if /i "%1" == "/svn_ssh" ( set SVN_SSH=%2 shift - ) else if /i "%1" == "/prefer_nix" ( - set prefer_windows_commands=0 - shift ) else ( set "CMDER_USER_FLAGS=%1 %CMDER_USER_FLAGS%" )