From 250ae06e7ab3ecbd7ff2460b2b532bcb420c3982 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Fri, 26 Jun 2020 22:27:29 -0400 Subject: [PATCH 01/17] fix vscode terminal errors when setting cmder fast_init=1 outside cmder --- vendor/lib/lib_console.cmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vendor/lib/lib_console.cmd b/vendor/lib/lib_console.cmd index 17540dd..2b18d15 100644 --- a/vendor/lib/lib_console.cmd +++ b/vendor/lib/lib_console.cmd @@ -1,10 +1,10 @@ @echo off -if "%fast_init%" == "1" exit /b - call "%~dp0lib_base.cmd" set lib_console=call "%~dp0lib_console.cmd" +if "%fast_init%" == "1" exit /b + if "%~1" == "/h" ( %lib_base% help "%~0" ) else if "%1" neq "" ( From 52f5ad62c35f6e6aed69d961ec5e56f5e7c54626 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Fri, 26 Jun 2020 22:29:26 -0400 Subject: [PATCH 02/17] changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f2e168..1a22ae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 1.3.16-pre + +* fix vscode terminal errors when setting cmder fast_init=1 outside cmder [#2339](https://github.com/cmderdev/cmder/pull/2339) + ## [1.3.15](https://github.com/cmderdev/cmder/tree/v1.3.15) (2020-06-26) * Fixes #2247, fixes #2254 [#2265](https://github.com/cmderdev/cmder/pull/2265) From da5f1bc4db2966b3523e6778a3d7b8194877ab9b Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 29 Jun 2020 07:49:22 -0400 Subject: [PATCH 03/17] fix git detect --- vendor/init.bat | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index a4fecf9..eacad85 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -151,6 +151,7 @@ if "%CMDER_CLINK%" == "1" ( if not exist "%CMDER_USER_CONFIG%\settings" ( echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" + B echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ ) "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" @@ -200,14 +201,14 @@ if defined GIT_INSTALL_ROOT ( :: 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 - %lib_git% is_git_shim "%%~dpF" - %lib_git% get_user_git_version - %lib_git% compare_git_versions -) + if not defined GIT_INSTALL_ROOT ( + :: get the absolute path to the user provided git binary + %lib_git% is_git_shim "%%~dpF" + %lib_git% get_user_git_version + %lib_git% compare_git_versions -if defined GIT_INSTALL_ROOT ( - goto :FOUND_GIT + goto :FOUND_GIT + ) ) :: our last hope: our own git... From 4403edb110a169048acf5ea21259da05c7a0557e Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Wed, 1 Jul 2020 08:26:44 -0400 Subject: [PATCH 04/17] Update init.bat --- vendor/init.bat | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vendor/init.bat b/vendor/init.bat index eacad85..f34560e 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -207,7 +207,9 @@ for /F "delims=" %%F in ('where git.exe 2^>nul') do ( %lib_git% get_user_git_version %lib_git% compare_git_versions - goto :FOUND_GIT + if defined GIT_INSTALL_ROOT ( + goto :FOUND_GIT + ) ) ) From c332ab1a34304c92212f0cb4b888f84f544d2570 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Wed, 1 Jul 2020 16:24:36 -0400 Subject: [PATCH 05/17] Fix bug introduced in 1.3.15 --- vendor/init.bat | 10 +++++++--- vendor/profile.ps1 | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index f34560e..9c43b65 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -167,10 +167,14 @@ if "%CMDER_CLINK%" == "1" ( %lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" ) -if "%CMDER_CONFIGURED%" == "1" ( +if "%CMDER_CONFIGURED%" == "2" ( echo Cmder is already configured, skipping Cmder Init! goto CMDER_CONFIGURED +) else if "%CMDER_CONFIGURED%" == "1" ( + echo Cmder is already configured, skipping to Cmder User Init! + + goto USER_CONFIG_START ) :: Prepare for git-for-windows @@ -236,10 +240,10 @@ goto :CONFIGURE_GIT :: Add git to the path rem add the unix commands at the end to not shadow windows commands like more if %nix_tools% equ 1 ( - %lib_console% debug_output init.bat "Preferring Windows commands" + %lib_console% verbose_output "Preferring Windows commands" set "path_position=append" ) else ( - %lib_console% debug_output init.bat "Preferring *nix commands" + %lib_console% verbose_output "Preferring *nix commands" set "path_position=" ) diff --git a/vendor/profile.ps1 b/vendor/profile.ps1 index ad9182a..5b940fd 100644 --- a/vendor/profile.ps1 +++ b/vendor/profile.ps1 @@ -1,4 +1,4 @@ -# Init Script for PowerShell +# Init Script for PowerShell # Created as part of cmder project # !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED From 0f12de345b35a6a8a77249ce388f973a89fa0350 Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Thu, 2 Jul 2020 07:00:25 -0400 Subject: [PATCH 06/17] Update init.bat --- vendor/init.bat | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index 9c43b65..d6eb099 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -151,7 +151,6 @@ if "%CMDER_CLINK%" == "1" ( if not exist "%CMDER_USER_CONFIG%\settings" ( echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" - B echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ ) "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" @@ -168,11 +167,11 @@ if "%CMDER_CLINK%" == "1" ( ) if "%CMDER_CONFIGURED%" == "2" ( - echo Cmder is already configured, skipping Cmder Init! + %lib_console% verbose_output "Cmder is already configured, skipping Cmder Init!" goto CMDER_CONFIGURED ) else if "%CMDER_CONFIGURED%" == "1" ( - echo Cmder is already configured, skipping to Cmder User Init! + %lib_console% verbose_output "Cmder is already configured, skipping to Cmder User Init!" goto USER_CONFIG_START ) @@ -205,15 +204,13 @@ if defined GIT_INSTALL_ROOT ( :: check if git is in path... for /F "delims=" %%F in ('where git.exe 2^>nul') do ( - if not defined GIT_INSTALL_ROOT ( - :: get the absolute path to the user provided git binary - %lib_git% is_git_shim "%%~dpF" - %lib_git% get_user_git_version - %lib_git% compare_git_versions + :: get the absolute path to the user provided git binary + %lib_git% is_git_shim "%%~dpF" + %lib_git% get_user_git_version + %lib_git% compare_git_versions - if defined GIT_INSTALL_ROOT ( - goto :FOUND_GIT - ) + if defined GIT_INSTALL_ROOT ( + goto :FOUND_GIT ) ) From f1c1354c007c7018cd31493e0a18dc602b694bb5 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 4 Jul 2020 13:43:18 -0400 Subject: [PATCH 07/17] make vscode_init.cmd smart enough to apply cmder settings if launched from inside or outside cmder --- vendor/bin/vscode_init.cmd | 27 ++++++++++++ vendor/bin/vscode_init_args.cmd.default | 58 +++++++++++++++++++++++++ vendor/init.bat | 9 +++- 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 vendor/bin/vscode_init_args.cmd.default diff --git a/vendor/bin/vscode_init.cmd b/vendor/bin/vscode_init.cmd index f95dc66..cc1161b 100644 --- a/vendor/bin/vscode_init.cmd +++ b/vendor/bin/vscode_init.cmd @@ -1,4 +1,31 @@ @echo off + +:: Find root dir + +if not defined CMDER_ROOT ( + for /f "delims=" %%i in ("%~dp0\..\..") do ( + set "cmder_root=%%~fi" + ) +) + +if defined cmder_user_bin ( + if exist "%cmder_user_bin%\vscode_init_args.cmd" ( + set CMDER_VSCODE_INIT_ARGS=%cmder_user_bin%\vscode_init_args.cmd + ) else ( + echo Creating initial "%CMDER_ROOT%\bin\vscode_init_args.cmd"... + copy "%CMDER_ROOT%\bin\vscode_init_args.cmd.default" "%cmder_user_bin%\vscode_init_args.cmd" + ) +) else if exist "%CMDER_ROOT%\bin\vscode_init_args.cmd" ( + set CMDER_VSCODE_INIT_ARGS=%CMDER_ROOT%\bin\vscode_init_args.cmd +) else ( + echo Creating initial "%CMDER_ROOT%\bin\vscode_init_args.cmd"... + copy "%CMDER_ROOT%\bin\vscode_init_args.cmd.default" "%CMDER_ROOT%\bin\vscode_init_args.cmd" +) + +if defined CMDER_VSCODE_INIT_ARGS ( + call "%CMDER_VSCODE_INIT_ARGS%" +) + IF [%1] == [] ( REM -- manually opened console (Ctrl + Shift + `) -- CALL "%~dp0..\init.bat" diff --git a/vendor/bin/vscode_init_args.cmd.default b/vendor/bin/vscode_init_args.cmd.default new file mode 100644 index 0000000..687e24a --- /dev/null +++ b/vendor/bin/vscode_init_args.cmd.default @@ -0,0 +1,58 @@ +@echo off + +:: Below are the default Cmder session settings: +:: +:: See "%CMDER_ROOT%\README.md" for details on these settings. +:: +:: `Cmder.exe` Arguments: +:: ---------------------- +:: +:: `/c [cmder_user_cfg_root] +:: set cmder_user_bin=[cmder_user_cfg_root]\bin +:: set cmder_user_config=[cmder_user_cfg_root]\config +:: +:: `init.bat` Arguments +:: -------------------- +:: +:: `/d` +:: debug_output=0 +:: +:: `/v` +:: verbose_output=0 +:: +:: `/f` +:: fast_init=0 +:: +:: `/nix_tools` +:: nix_tools=1 +:: +:: `/t` +:: time_init=0 +:: +:: `/max_depth` +:: max_depth=1 +:: +:: `/user_aliases` +:: user_aliases= +:: +:: `/git_install_root` +:: GIT_INSTALL_ROOT= +:: +:: `/home` +:: HOME= +:: +:: `/svn_ssh` +:: SVN_SSH= + +echo Applying Cmder VSCode settings from '%~0'... + +if defined CMDER_CONFIGURED ( + :: Set Cmder settings here for when VSCode is launched inside Cmder. + set verbose_output=1 +) else ( + :: Set Cmder settings here for when VSCode is launched from outside Cmder. + set verbose_output=1 +) + +:: Set all required Cmder VSCode terminal environment settings above this line. +echo Applying Cmder VSCode settings is complete! \ No newline at end of file diff --git a/vendor/init.bat b/vendor/init.bat index d6eb099..88d0fd2 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -166,10 +166,10 @@ if "%CMDER_CLINK%" == "1" ( %lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" ) -if "%CMDER_CONFIGURED%" == "2" ( +if "%CMDER_CONFIGURED%" gtr 1 ( %lib_console% verbose_output "Cmder is already configured, skipping Cmder Init!" - goto CMDER_CONFIGURED + goto USER_ALIASES ) else if "%CMDER_CONFIGURED%" == "1" ( %lib_console% verbose_output "Cmder is already configured, skipping to Cmder User Init!" @@ -298,6 +298,7 @@ if defined CMDER_USER_CONFIG ( %lib_profile% run_profile_d "%CMDER_USER_CONFIG%\profile.d" ) +:USER_ALIASES :: Allows user to override default aliases store using profile.d :: scripts run above by setting the 'aliases' env variable. :: @@ -342,7 +343,11 @@ if "%CMDER_ALIASES%" == "1" ( :: Add aliases to the environment call "%user_aliases%" +if "%CMDER_CONFIGURED%" gtr 1 goto CMDER_CONFIGURED + :: See vendor\git-for-windows\README.portable for why we do this +:: A +:: A :: 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" ( From 5e7a7029d138f6a1cefbeae6e3d98e9b58c3053e Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 4 Jul 2020 14:23:16 -0400 Subject: [PATCH 08/17] make vscode_init.cmd smart enough to apply cmder settings if launched from inside or outside cmder --- vendor/bin/vscode_init.cmd | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/vendor/bin/vscode_init.cmd b/vendor/bin/vscode_init.cmd index cc1161b..fc6b300 100644 --- a/vendor/bin/vscode_init.cmd +++ b/vendor/bin/vscode_init.cmd @@ -11,18 +11,15 @@ if not defined CMDER_ROOT ( if defined cmder_user_bin ( if exist "%cmder_user_bin%\vscode_init_args.cmd" ( set CMDER_VSCODE_INIT_ARGS=%cmder_user_bin%\vscode_init_args.cmd - ) else ( - echo Creating initial "%CMDER_ROOT%\bin\vscode_init_args.cmd"... - copy "%CMDER_ROOT%\bin\vscode_init_args.cmd.default" "%cmder_user_bin%\vscode_init_args.cmd" ) ) else if exist "%CMDER_ROOT%\bin\vscode_init_args.cmd" ( set CMDER_VSCODE_INIT_ARGS=%CMDER_ROOT%\bin\vscode_init_args.cmd -) else ( - echo Creating initial "%CMDER_ROOT%\bin\vscode_init_args.cmd"... - copy "%CMDER_ROOT%\bin\vscode_init_args.cmd.default" "%CMDER_ROOT%\bin\vscode_init_args.cmd" ) -if defined CMDER_VSCODE_INIT_ARGS ( +if not exist "%CMDER_VSCODE_INIT_ARGS%" ( + echo Creating initial "%CMDER_VSCODE_INIT_ARGS%"... + copy "%CMDER_ROOT%\vendor\bin\vscode_init_args.cmd.default" "%CMDER_VSCODE_INIT_ARGS%" +else ( call "%CMDER_VSCODE_INIT_ARGS%" ) From 2c620d1d6726e6072487ea9f6a406a1be934e4b8 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 5 Jul 2020 15:13:23 -0400 Subject: [PATCH 09/17] cleanup --- vendor/bin/vscode_init_args.cmd.default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/bin/vscode_init_args.cmd.default b/vendor/bin/vscode_init_args.cmd.default index 687e24a..8ee8f89 100644 --- a/vendor/bin/vscode_init_args.cmd.default +++ b/vendor/bin/vscode_init_args.cmd.default @@ -55,4 +55,4 @@ if defined CMDER_CONFIGURED ( ) :: Set all required Cmder VSCode terminal environment settings above this line. -echo Applying Cmder VSCode settings is complete! \ No newline at end of file +echo Applying Cmder VSCode settings is complete! From 954937cf979acc442aa4f27bc0915ff4edb0b7fe Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 5 Jul 2020 15:22:09 -0400 Subject: [PATCH 10/17] cleanup --- vendor/bin/vscode_init.cmd | 8 ++--- vscode_init_args.cmd | 64 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 vscode_init_args.cmd diff --git a/vendor/bin/vscode_init.cmd b/vendor/bin/vscode_init.cmd index fc6b300..bbe1ba2 100644 --- a/vendor/bin/vscode_init.cmd +++ b/vendor/bin/vscode_init.cmd @@ -9,17 +9,15 @@ if not defined CMDER_ROOT ( ) if defined cmder_user_bin ( - if exist "%cmder_user_bin%\vscode_init_args.cmd" ( - set CMDER_VSCODE_INIT_ARGS=%cmder_user_bin%\vscode_init_args.cmd - ) -) else if exist "%CMDER_ROOT%\bin\vscode_init_args.cmd" ( + set CMDER_VSCODE_INIT_ARGS=%cmder_user_bin%\vscode_init_args.cmd +) else ( set CMDER_VSCODE_INIT_ARGS=%CMDER_ROOT%\bin\vscode_init_args.cmd ) if not exist "%CMDER_VSCODE_INIT_ARGS%" ( echo Creating initial "%CMDER_VSCODE_INIT_ARGS%"... copy "%CMDER_ROOT%\vendor\bin\vscode_init_args.cmd.default" "%CMDER_VSCODE_INIT_ARGS%" -else ( +) else ( call "%CMDER_VSCODE_INIT_ARGS%" ) diff --git a/vscode_init_args.cmd b/vscode_init_args.cmd new file mode 100644 index 0000000..87b4071 --- /dev/null +++ b/vscode_init_args.cmd @@ -0,0 +1,64 @@ +@echo off + +:: Below are the default Cmder session settings: +:: +:: See "%CMDER_ROOT%\README.md" for details on these settings. +:: +:: `Cmder.exe` Arguments: +:: ---------------------- +:: +:: `/c [cmder_user_cfg_root]` +:: NOT USED BY DEFAULT +:: cmder_user_bin=[cmder_user_cfg_root]\bin +:: cmder_user_config=[cmder_user_cfg_root]\config +:: +:: `init.bat` Arguments +:: -------------------- +:: +:: `/d` +:: debug_output=0 +:: +:: `/v` +:: verbose_output=0 +:: +:: `/f` +:: fast_init=0 +:: +:: `/nix_tools` +:: nix_tools=1 +:: +:: `/t` +:: time_init=0 +:: +:: `/max_depth` +:: max_depth=1 +:: +:: `/user_aliases` +:: user_aliases= +:: +:: `/git_install_root` +:: GIT_INSTALL_ROOT= +:: +:: `/home` +:: HOME= +:: +:: `/svn_ssh` +:: SVN_SSH= + +echo Applying Cmder VSCode settings from '%~0'... + +if defined CMDER_CONFIGURED ( + :: Set Cmder settings here for when VSCode is launched inside Cmder. + set CMDER_CONFIGURED=2 +) else ( + :: Set Cmder settings here for when VSCode is launched from outside Cmder. + set nix_tools=0 + set fast_init=1 + set cmder_user_bin=c:\users\dtgam\cmder\bin + set cmder_user_config=c:\users\dtgam\cmder\config +) + +set verbose_output=1 + +:: Set all required Cmder VSCode terminal environment settings above this line. +echo Applying Cmder VSCode settings is complete! From 97a41ddd995fa0a2db402a26ed1badc21afae9fb Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Tue, 14 Jul 2020 22:31:57 -0400 Subject: [PATCH 11/17] fix cmder_configured GTR 1 --- vendor/init.bat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index 88d0fd2..fea177e 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -166,7 +166,7 @@ if "%CMDER_CLINK%" == "1" ( %lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" ) -if "%CMDER_CONFIGURED%" gtr 1 ( +if "%CMDER_CONFIGURED%" GTR "1" ( %lib_console% verbose_output "Cmder is already configured, skipping Cmder Init!" goto USER_ALIASES @@ -343,7 +343,7 @@ if "%CMDER_ALIASES%" == "1" ( :: Add aliases to the environment call "%user_aliases%" -if "%CMDER_CONFIGURED%" gtr 1 goto CMDER_CONFIGURED +if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED :: See vendor\git-for-windows\README.portable for why we do this :: A @@ -398,7 +398,7 @@ if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMD set initialConfig= :CMDER_CONFIGURED -set CMDER_CONFIGURED=1 +if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1 set CMDER_INIT_END=%time% From fdcbd6df87752910f1945f1e03f469b6abe07014 Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Thu, 23 Jul 2020 08:43:09 -0400 Subject: [PATCH 12/17] Delete vscode_init_args.cmd --- vscode_init_args.cmd | 64 -------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 vscode_init_args.cmd diff --git a/vscode_init_args.cmd b/vscode_init_args.cmd deleted file mode 100644 index 87b4071..0000000 --- a/vscode_init_args.cmd +++ /dev/null @@ -1,64 +0,0 @@ -@echo off - -:: Below are the default Cmder session settings: -:: -:: See "%CMDER_ROOT%\README.md" for details on these settings. -:: -:: `Cmder.exe` Arguments: -:: ---------------------- -:: -:: `/c [cmder_user_cfg_root]` -:: NOT USED BY DEFAULT -:: cmder_user_bin=[cmder_user_cfg_root]\bin -:: cmder_user_config=[cmder_user_cfg_root]\config -:: -:: `init.bat` Arguments -:: -------------------- -:: -:: `/d` -:: debug_output=0 -:: -:: `/v` -:: verbose_output=0 -:: -:: `/f` -:: fast_init=0 -:: -:: `/nix_tools` -:: nix_tools=1 -:: -:: `/t` -:: time_init=0 -:: -:: `/max_depth` -:: max_depth=1 -:: -:: `/user_aliases` -:: user_aliases= -:: -:: `/git_install_root` -:: GIT_INSTALL_ROOT= -:: -:: `/home` -:: HOME= -:: -:: `/svn_ssh` -:: SVN_SSH= - -echo Applying Cmder VSCode settings from '%~0'... - -if defined CMDER_CONFIGURED ( - :: Set Cmder settings here for when VSCode is launched inside Cmder. - set CMDER_CONFIGURED=2 -) else ( - :: Set Cmder settings here for when VSCode is launched from outside Cmder. - set nix_tools=0 - set fast_init=1 - set cmder_user_bin=c:\users\dtgam\cmder\bin - set cmder_user_config=c:\users\dtgam\cmder\config -) - -set verbose_output=1 - -:: Set all required Cmder VSCode terminal environment settings above this line. -echo Applying Cmder VSCode settings is complete! From 7326a3cfc5665de9edb5326943a74df61865528a Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Thu, 23 Jul 2020 13:34:13 -0400 Subject: [PATCH 13/17] Update init.bat --- vendor/init.bat | 409 +----------------------------------------------- 1 file changed, 1 insertion(+), 408 deletions(-) diff --git a/vendor/init.bat b/vendor/init.bat index fea177e..9cc4009 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -1,408 +1 @@ -@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. -if not defined verbose_output set verbose_output=0 - -:: Use /d command line arg or set to 1 for debug output to aid in debugging. -if not defined debug_output set debug_output=0 - -:: Use /t command line arg or set to 1 to display init time. -if not defined time_init set time_init=0 - -:: Use /f command line arg to speed up init at the expense of some functionality. -if not defined fast_init set fast_init=0 - -:: Use /max_depth 1-5 to set max recurse depth for calls to `enhance_path_recursive` -if not defined max_depth set max_depth=1 - -:: Add *nix tools to end of path. 0 turns off *nix tools, 2 adds *nix tools to the front of thr path. -if not defined nix_tools set nix_tools=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"=="/nix_tools" ( - if "%2" equ "0" ( - REM Do not add *nix tools to path - set nix_tools=0 - shift - ) else if "%2" equ "1" ( - REM Add *nix tools to end of path - set nix_tools=1 - shift - ) else if "%2" equ "2" ( - REM Add *nix tools to front of path - set nix_tools=2 - shift - ) - ) 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 ( - 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%'!" - - if not exist "%CMDER_USER_CONFIG%\opt" md "%CMDER_USER_CONFIG%\opt" -) - -:: Pick right version of clink -if "%PROCESSOR_ARCHITECTURE%"=="x86" ( - set clink_architecture=x86 - set architecture_bits=32 -) else ( - set clink_architecture=x64 - 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" - copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" - echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ - ) - "%CMDER_ROOT%\vendor\clink\clink_%clink_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" - copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings" - echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. - ) - "%CMDER_ROOT%\vendor\clink\clink_%clink_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!" -) - -if "%CMDER_CONFIGURED%" GTR "1" ( - %lib_console% verbose_output "Cmder is already configured, skipping Cmder Init!" - - goto USER_ALIASES -) else if "%CMDER_CONFIGURED%" == "1" ( - %lib_console% verbose_output "Cmder is already configured, skipping to Cmder User Init!" - - goto USER_CONFIG_START -) - -:: 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 -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 - %lib_git% is_git_shim "%%~dpF" - %lib_git% get_user_git_version - %lib_git% compare_git_versions - - if defined GIT_INSTALL_ROOT ( - goto :FOUND_GIT - ) -) - -:: 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 '%GIT_VERSION_VENDORED%'..." - goto :CONFIGURE_GIT -) else ( - goto :NO_GIT -) - -:SPECIFIED_GIT -%lib_console% debug_output "Using /GIT_INSTALL_ROOT..." -goto :CONFIGURE_GIT - -:FOUND_GIT -%lib_console% debug_output "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..." -goto :CONFIGURE_GIT - -:CONFIGURE_GIT -%lib_console% debug_output "Using Git from '%GIT_INSTALL_ROOT%..." -:: Add git to the path -rem add the unix commands at the end to not shadow windows commands like more -if %nix_tools% equ 1 ( - %lib_console% verbose_output "Preferring Windows commands" - set "path_position=append" -) else ( - %lib_console% verbose_output "Preferring *nix commands" - set "path_position=" -) - -if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" %path_position% -if %nix_tools% geq 1 ( - 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" - -:: 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 "tokens=* 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 for /F "tokens=* delims=" %%F in ('where env.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" /usr/bin/locale ) - -if defined git_locale ( - %lib_console% debug_output init.bat "Env Var - git_locale=%git_locale%" - if not defined LANG ( - for /F "delims=" %%F in ('%git_locale% -uU 2') do ( - set "LANG=%%F" - ) - ) -) - -%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" - -:USER_CONFIG_START -%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" 0 %max_depth% -if defined CMDER_USER_BIN ( - %lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %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" -) - -:USER_ALIASES -:: 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.default', -:: 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 - if not exist "%user_aliases%" ( - echo Creating initial user_aliases store in "%user_aliases%"... - copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" - ) else ( - %lib_base% update_legacy_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" - ) -) - -:: Add aliases to the environment -call "%user_aliases%" - -if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED - -:: See vendor\git-for-windows\README.portable for why we do this -:: A -:: A -:: 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" ( - echo Running Git for Windows one time Post Install.... - pushd "%GIT_INSTALL_ROOT%\" - "%GIT_INSTALL_ROOT%\git-cmd.exe" --no-needs-console --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%" - copy "%CMDER_ROOT%\vendor\user_profile.cmd.default" "%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= - -:CMDER_CONFIGURED -if not defined CMDER_CONFIGURED 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 +dtgames@kinggeek.org From 79261d4d27baa26f13be16343f995e55ecbf550c Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Thu, 23 Jul 2020 13:36:50 -0400 Subject: [PATCH 14/17] fix --- vendor/lib/lib_path.cmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index a8fe253..55d28cb 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -168,7 +168,8 @@ exit /b set "position=" ) - dir "%add_path%" | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL + dir "%add_path%" >NUL | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL + if "%ERRORLEVEL%" == "0" ( set "add_to_path=%add_path%" ) else ( From 0c3d89925e61592aab60cf0f1e556c93dff3902f Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Thu, 23 Jul 2020 13:41:10 -0400 Subject: [PATCH 15/17] 'fix --- vendor/init.bat | 407 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 406 insertions(+), 1 deletion(-) diff --git a/vendor/init.bat b/vendor/init.bat index 9cc4009..bcc0560 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -1 +1,406 @@ -dtgames@kinggeek.org +@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. +if not defined verbose_output set verbose_output=0 + +:: Use /d command line arg or set to 1 for debug output to aid in debugging. +if not defined debug_output set debug_output=0 + +:: Use /t command line arg or set to 1 to display init time. +if not defined time_init set time_init=0 + +:: Use /f command line arg to speed up init at the expense of some functionality. +if not defined fast_init set fast_init=0 + +:: Use /max_depth 1-5 to set max recurse depth for calls to `enhance_path_recursive` +if not defined max_depth set max_depth=1 + +:: Add *nix tools to end of path. 0 turns off *nix tools, 2 adds *nix tools to the front of thr path. +if not defined nix_tools set nix_tools=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"=="/nix_tools" ( + if "%2" equ "0" ( + REM Do not add *nix tools to path + set nix_tools=0 + shift + ) else if "%2" equ "1" ( + REM Add *nix tools to end of path + set nix_tools=1 + shift + ) else if "%2" equ "2" ( + REM Add *nix tools to front of path + set nix_tools=2 + shift + ) + ) 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 ( + 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%'!" + + if not exist "%CMDER_USER_CONFIG%\opt" md "%CMDER_USER_CONFIG%\opt" +) + +:: Pick right version of clink +if "%PROCESSOR_ARCHITECTURE%"=="x86" ( + set clink_architecture=x86 + set architecture_bits=32 +) else ( + set clink_architecture=x64 + 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" + copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" + echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ + ) + "%CMDER_ROOT%\vendor\clink\clink_%clink_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" + copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings" + echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. + ) + "%CMDER_ROOT%\vendor\clink\clink_%clink_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!" +) + +if "%CMDER_CONFIGURED%" GTR "1" ( + %lib_console% verbose_output "Cmder is already configured, skipping Cmder Init!" + + goto USER_ALIASES +) else if "%CMDER_CONFIGURED%" == "1" ( + %lib_console% verbose_output "Cmder is already configured, skipping to Cmder User Init!" + + goto USER_CONFIG_START +) + +:: 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 +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 + %lib_git% is_git_shim "%%~dpF" + %lib_git% get_user_git_version + %lib_git% compare_git_versions + + if defined GIT_INSTALL_ROOT ( + goto :FOUND_GIT + ) +) + +:: 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 '%GIT_VERSION_VENDORED%'..." + goto :CONFIGURE_GIT +) else ( + goto :NO_GIT +) + +:SPECIFIED_GIT +%lib_console% debug_output "Using /GIT_INSTALL_ROOT..." +goto :CONFIGURE_GIT + +:FOUND_GIT +%lib_console% debug_output "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..." +goto :CONFIGURE_GIT + +:CONFIGURE_GIT +%lib_console% debug_output "Using Git from '%GIT_INSTALL_ROOT%..." +:: Add git to the path +rem add the unix commands at the end to not shadow windows commands like more +if %nix_tools% equ 1 ( + %lib_console% verbose_output "Preferring Windows commands" + set "path_position=append" +) else ( + %lib_console% verbose_output "Preferring *nix commands" + set "path_position=" +) + +if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" %path_position% +if %nix_tools% geq 1 ( + 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" + +:: 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 "tokens=* 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 for /F "tokens=* delims=" %%F in ('where env.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" /usr/bin/locale ) + +if defined git_locale ( + %lib_console% debug_output init.bat "Env Var - git_locale=%git_locale%" + if not defined LANG ( + for /F "delims=" %%F in ('%git_locale% -uU 2') do ( + set "LANG=%%F" + ) + ) +) + +%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" + +:USER_CONFIG_START +%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" 0 %max_depth% +if defined CMDER_USER_BIN ( + %lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %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" +) + +:USER_ALIASES +:: 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.default', +:: 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 + if not exist "%user_aliases%" ( + echo Creating initial user_aliases store in "%user_aliases%"... + copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%" + ) else ( + %lib_base% update_legacy_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" + ) +) + +:: Add aliases to the environment +call "%user_aliases%" + +if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED + +:: 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" ( + echo Running Git for Windows one time Post Install.... + pushd "%GIT_INSTALL_ROOT%\" + "%GIT_INSTALL_ROOT%\git-cmd.exe" --no-needs-console --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%" + copy "%CMDER_ROOT%\vendor\user_profile.cmd.default" "%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= + +:CMDER_CONFIGURED +if not defined CMDER_CONFIGURED 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 334838c0792ba6bf806a8da77f819923b3f4b3c4 Mon Sep 17 00:00:00 2001 From: Dax T Games Date: Fri, 24 Jul 2020 08:34:45 -0400 Subject: [PATCH 16/17] Update init.bat --- vendor/init.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/init.bat b/vendor/init.bat index bcc0560..1b02674 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -370,7 +370,7 @@ 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 + %lib_console% debug_output init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd" call "%CMDER_USER_CONFIG%\user_profile.cmd" ) ) From 37a223b449cc163e0981a2319b400df4f6ccceea Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 25 Jul 2020 05:11:34 -0400 Subject: [PATCH 17/17] fix lib_path --- vendor/lib/lib_path.cmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index 55d28cb..4032283 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -32,6 +32,7 @@ exit /b :::options: ::: ::: append Append to the path env variable rather than pre-pend. +::B ::: :::output: ::: @@ -168,7 +169,7 @@ exit /b set "position=" ) - dir "%add_path%" >NUL | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL + dir "%add_path%" 2>NUL | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL if "%ERRORLEVEL%" == "0" ( set "add_to_path=%add_path%"