diff --git a/vendor/bin/excd.cmd b/vendor/bin/excd.cmd index c957740..a4ac4bd 100644 --- a/vendor/bin/excd.cmd +++ b/vendor/bin/excd.cmd @@ -1,6 +1,8 @@ -@if "%~1"=="/?" (@cd %*) -@set excd=%* -@set excd=%excd:"=% -@if "%excd:~0,1%"=="~" (@set excd=%userprofile%\%excd:~1%) -@if not "%~1"=="/d" (@set excd_param="/d") else (@set excd_param=) -@cd %excd_param% "%excd%" +@echo off +set excd=%* +set excd=%excd:"=% +set excd_param=/d +if /i "%excd:~0,2%"=="/d" set "excd=%excd:~2%" +if "%excd:~0,1%"=="~" (set excd=%userprofile%\%excd:~1%) +if "%excd:~0,1%"=="/" (set excd_param=) +cd %excd_param% %excd% diff --git a/vendor/init.bat b/vendor/init.bat index 2de5c81..fafb0ee 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -478,7 +478,7 @@ if "%CMDER_ALIASES%" == "1" ( ) :: Add aliases to the environment -type "%user_aliases%" | findstr /b /l /i "history=cat " >nul +type "%user_aliases%" | %WINDIR%\System32\findstr /b /l /i "history=cat " >nul if "%ERRORLEVEL%" == "0" ( echo Migrating alias 'history' to new Clink 1.x.x... call "%CMDER_ROOT%\vendor\bin\alias.cmd" /d history diff --git a/vendor/lib/lib_base.cmd b/vendor/lib/lib_base.cmd index d86a7fc..f7420ef 100644 --- a/vendor/lib/lib_base.cmd +++ b/vendor/lib/lib_base.cmd @@ -10,9 +10,8 @@ if "%~1" == "/h" ( exit /b -:help :::=============================================================================== -:::show_subs - shows all sub routines in a .bat/.cmd file with documentation +:::help - shows all sub routines in a .bat/.cmd file with documentation :::. :::include: :::. @@ -20,16 +19,15 @@ exit /b :::. :::usage: :::. -::: %lib_base% show_subs "file" +::: %lib_base% help "file" :::. :::options: :::. ::: file full path to file containing lib_routines to display -:::. :::------------------------------------------------------------------------------- - for /f "tokens=* delims=:" %%a in ('type "%~1" ^| %WINDIR%\System32\findstr /i /r "^:::"') do ( - rem echo a="%%a" +:help + for /f "tokens=* delims=:" %%a in ('%WINDIR%\System32\findstr /i /r "^:::" "%~1"') do ( if "%%a"=="." ( echo. ) else if /i "%%a" == "usage" ( @@ -44,9 +42,13 @@ exit /b pause exit /b -:cmder_shell :::=============================================================================== -:::show_subs - shows all sub routines in a .bat/.cmd file with documentation +:::cmder_shell - Initializes the Cmder shell environment variables +:::. +:::description: +:::. +::: This routine sets up the Cmder shell environment by detecting the +::: command shell and initializing related variables. :::. :::include: :::. @@ -55,15 +57,30 @@ exit /b :::usage: :::. ::: %lib_base% cmder_shell -:::. -:::options: -:::. -::: file full path to file containing lib_routines to display -:::. :::------------------------------------------------------------------------------- + +:cmder_shell call :detect_comspec %ComSpec% exit /b +:::=============================================================================== +:::detect_comspec - Detects the command shell being used::: +:::. +:::description: +:::. +::: This function sets the CMDER_SHELL variable to the name of the +::: detected command shell. It also initializes the CMDER_CLINK and +::: CMDER_ALIASES variables if they are not already defined. +:::. +:::include: +:::. +::: call "lib_base.cmd" +:::. +:::usage: +:::. +::: %lib_base% detect_comspec %ComSpec% +:::------------------------------------------------------------------------------- + :detect_comspec set CMDER_SHELL=%~n1 if not defined CMDER_CLINK ( @@ -74,6 +91,27 @@ exit /b ) exit /b +:::=============================================================================== +:::update_legacy_aliases - Updates the legacy alias definitions in the user_aliases file +:::. +:::description: +:::. +::: This function checks if the user_aliases file contains the marker +::: ";= Add aliases below here". If the marker is not found, it creates +::: an initial user_aliases store by copying the default user_aliases file +::: from the CMDER_ROOT directory. If the CMDER_USER_CONFIG environment +::: variable is defined, it creates a backup of the existing user_aliases +::: file before copying the default file. +:::. +:::include: +:::. +::: call "lib_base.cmd" +:::. +:::usage: +:::. +::: %lib_base% update_legacy_aliases +:::------------------------------------------------------------------------------- + :update_legacy_aliases type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul if "%errorlevel%" == "1" ( diff --git a/vendor/lib/lib_git.cmd b/vendor/lib/lib_git.cmd index f20f7e8..7b3bc47 100644 --- a/vendor/lib/lib_git.cmd +++ b/vendor/lib/lib_git.cmd @@ -12,7 +12,6 @@ if "%~1" == "/h" ( exit /b -:read_version :::=============================================================================== :::read_version - Get the git.exe version :::. @@ -34,6 +33,7 @@ exit /b ::: GIT_VERSION_[GIT SCOPE] Env variable containing Git semantic version string :::------------------------------------------------------------------------------- +:read_version :: clear the variables set GIT_VERSION_%~1= @@ -64,7 +64,6 @@ exit /b exit /b -:parse_version :::=============================================================================== :::parse_version - Parse semantic version string 'x.x.x.x' and return the pieces :::. @@ -89,6 +88,7 @@ exit /b ::: [SCOPE]_BUILD Scoped Build version. :::------------------------------------------------------------------------------- +:parse_version :: process a `x.x.x.xxxx.x` formatted string %print_debug% :parse_version "ARGV[1]=%~1, ARGV[2]=%~2" @@ -111,9 +111,8 @@ exit /b :endlocal_set_git_version -:validate_version :::=============================================================================== -:::validate_version - Validate semantic version string 'x.x.x.x'. +:::validate_version - Validate semantic version string 'x.x.x.x' :::. :::include: :::. @@ -129,6 +128,7 @@ exit /b ::: [VERSION] Semantic version String. Ex: 1.2.3.4 :::------------------------------------------------------------------------------- +:validate_version :: now parse the version information into the corresponding variables %print_debug% :validate_version "ARGV[1]=%~1, ARGV[2]=%~2" @@ -143,9 +143,8 @@ exit /b ) exit /b -:compare_versions :::=============================================================================== -:::compare_version - Compare semantic versions return latest version. +:::compare_version - Compare semantic versions and return latest version :::. :::include: :::. @@ -161,6 +160,7 @@ exit /b ::: [SCOPE2] Example: VENDOR :::------------------------------------------------------------------------------- +:compare_versions :: checks all major, minor, patch and build variables for the given arguments. :: whichever binary that has the most recent version will be used based on the return code. @@ -185,7 +185,12 @@ exit /b endlocal & exit /b 0 :::=============================================================================== -:::is_git_shim +:::is_git_shim - Check if the directory has a git.shim file +:::. +:::description: +:::. +::: Shim is a small helper program for Scoop that calls the executable configured in git.shim file +::: See: github.com/ScoopInstaller/Shim and github.com/cmderdev/cmder/pull/1905 :::. :::include: :::. @@ -202,7 +207,7 @@ exit /b :is_git_shim pushd "%~1" - :: check if there's shim - and if yes follow the path + :: check if there is a shim file - if yes, read the actual executable path setlocal enabledelayedexpansion if exist git.shim ( for /F "tokens=2 delims== " %%I in (git.shim) do ( @@ -219,7 +224,7 @@ exit /b exit /b :::=============================================================================== -:::compare_git_versions +:::compare_git_versions - Compare the user git version against the vendored version :::. :::include: :::. @@ -262,7 +267,7 @@ exit /b exit /b :::=============================================================================== -:::get_user_git_version - get the version information for the user provided git binary +:::get_user_git_version - Get the version information for the user provided git binary :::. :::include: :::. @@ -278,5 +283,4 @@ exit /b %lib_git% read_version USER "%test_dir%" 2>nul %print_debug% ":get_user_git_version" "get_user_git_version GIT_VERSION_USER: %GIT_VERSION_USER%" %lib_git% validate_version USER %GIT_VERSION_USER% - exit /b - + exit /b diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index 7cfcaa7..dd76c68 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -1,6 +1,5 @@ @echo off - call "%~dp0lib_base.cmd" call "%%~dp0lib_console" set lib_path=call "%~dp0lib_path.cmd" @@ -11,6 +10,13 @@ if "%~1" == "/h" ( call :%* ) +setlocal enabledelayedexpansion +if not defined find_pathext ( + set "find_pathext=!PATHEXT:;= !" + set "find_pathext=!find_pathext:.=\.!" +) +endlocal & set "find_pathext=%find_pathext%" + exit /b :enhance_path @@ -32,13 +38,12 @@ exit /b :::options: ::: ::: append Append to the path env variable rather than pre-pend. -::B +::: ::: :::output: ::: ::: path Sets the path env variable if required. :::------------------------------------------------------------------------------- - if "%~1" neq "" ( set "add_path=%~1" ) else ( @@ -52,7 +57,8 @@ exit /b set "position=" ) - dir "%add_path%" | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL + dir "%add_path%" 2>NUL | findstr -i -e "%find_pathext%" >NUL + if "%ERRORLEVEL%" == "0" ( set "add_to_path=%add_path%" ) else ( @@ -81,20 +87,20 @@ exit /b echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!;" call :set_found ) - %print_debug% :enhance_path "Env Var INSIDE PATH !find_query! - found=!found!" + %print_debug% :enhance_path "Env Var INSIDE PATH !find_query! - found=!found!" if /i "!position!" == "append" ( if "!found!" == "0" ( echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!\"$" call :set_found ) - %print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!" + %print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!" ) else ( if "!found!" == "0" ( echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:"^\"!find_query!;" call :set_found ) - %print_debug% :enhance_path "Env Var BEGIN PATH !find_query! - found=!found!" + %print_debug% :enhance_path "Env Var BEGIN PATH !find_query! - found=!found!" ) endlocal & set found=%found% @@ -129,13 +135,12 @@ exit /b exit /b :changed - %print_debug% :enhance_path "END Env Var - PATH=%path%" - %print_debug% :enhance_path "Env Var %find_query% - found=%found%" + %print_debug% :enhance_path "END Env Var - PATH=%path%" + %print_debug% :enhance_path "Env Var %find_query% - found=%found%" exit /b exit /b - :set_found if "%ERRORLEVEL%" == "0" ( set found=1 @@ -190,7 +195,7 @@ exit /b set "position=" ) - dir "%add_path%" 2>NUL | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL + dir "%add_path%" 2>NUL | findstr -i -e "%find_pathext%" >NUL if "%ERRORLEVEL%" == "0" ( set "add_to_path=%add_path%" @@ -204,7 +209,7 @@ exit /b set "path=%path%;%add_to_path%" ) else ( set "path=%add_to_path%;%path%" - ) + ) ) ) @@ -213,10 +218,10 @@ exit /b exit /b ) - %print_debug% :set_path_recursive "Env Var - add_path=%add_to_path%" - %print_debug% :set_path_recursive "Env Var - position=%position%" - %print_debug% :set_path_recursive "Env Var - depth=%depth%" - %print_debug% :set_path_recursive "Env Var - max_depth=%max_depth%" + %print_debug% :enhance_path_recursive "Env Var - add_path=%add_to_path%" + %print_debug% :enhance_path_recursive "Env Var - position=%position%" + %print_debug% :enhance_path_recursive "Env Var - depth=%depth%" + %print_debug% :enhance_path_recursive "Env Var - max_depth=%max_depth%" if %max_depth% gtr %depth% ( if "%add_to_path%" neq "" ( @@ -225,7 +230,7 @@ exit /b set "path=%path%;%add_to_path%" ) else ( set "path=%add_to_path%;%path%" - ) + ) ) call :set_depth call :loop_depth @@ -235,7 +240,7 @@ exit /b exit /b -: set_depth +:set_depth set /a "depth=%depth%+1" exit /b @@ -245,10 +250,9 @@ exit /b ) for /d %%i in ("%add_path%\*") do ( - %print_debug% :set_path_recursive "Env Var BEFORE - depth=%depth%" - %print_debug% :set_path_recursive "Found Subdirectory - '%%~fi'" - call :set_path_recursive "%%~fi" %depth% %max_depth% %position% - %print_debug% :set_path_recursive "Env Var AFTER- depth=%depth%" + %print_debug% :enhance_path_recursive "Env Var BEFORE - depth=%depth%" + %print_debug% :enhance_path_recursive "Found Subdirectory - '%%~fi'" + call :enhance_path_recursive "%%~fi" %depth% %max_depth% %position% + %print_debug% :enhance_path_recursive "Env Var AFTER- depth=%depth%" ) exit /b - diff --git a/vendor/lib/lib_profile.cmd b/vendor/lib/lib_profile.cmd index 850db14..050beac 100644 --- a/vendor/lib/lib_profile.cmd +++ b/vendor/lib/lib_profile.cmd @@ -12,26 +12,26 @@ if "%~1" == "/h" ( exit /b -:run_profile_d :::=============================================================================== -:::run_profile_d - Run all scripts in the passed dir path -::: +:::run_profile_d - Run all scripts in the passed directory path +:::. :::include: -::: +:::. ::: call "lib_profile.cmd" -::: +:::. :::usage: -::: +:::. ::: %lib_profile% "[dir_path]" -::: +:::. :::required: -::: +:::. ::: [dir_path] Fully qualified directory path containing init *.cmd|*.bat. ::: Example: "c:\bin" -::: +:::. ::: path Sets the path env variable if required. :::------------------------------------------------------------------------------- +:run_profile_d if not exist "%~1" ( mkdir "%~1" ) @@ -43,4 +43,3 @@ exit /b ) popd exit /b - diff --git a/vendor/psmodules/Cmder.ps1 b/vendor/psmodules/Cmder.ps1 index 79a053f..6c2f531 100644 --- a/vendor/psmodules/Cmder.ps1 +++ b/vendor/psmodules/Cmder.ps1 @@ -18,7 +18,8 @@ function readVersion($gitPath) { } function isGitShim($gitPath) { - # check if there's shim - and if yes follow the path + # check if there is a shim file - if yes, read the actual executable path + # See: github.com/ScoopInstaller/Shim if (Test-Path "${gitPath}\git.shim") { $shim = (get-content "${gitPath}\git.shim") diff --git a/vendor/sources.json b/vendor/sources.json index e16ee1b..1a62384 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -6,13 +6,13 @@ }, { "name": "git-for-windows", - "version": "2.45.1.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.45.1.windows.1/PortableGit-2.45.1-64-bit.7z.exe" + "version": "2.47.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.47.0.windows.1/PortableGit-2.47.0-64-bit.7z.exe" }, { "name": "clink", - "version": "1.6.14", - "url": "https://github.com/chrisant996/clink/releases/download/v1.6.14/clink.1.6.14.93b83f.zip" + "version": "1.7.3", + "url": "https://github.com/chrisant996/clink/releases/download/v1.7.3/clink.1.7.3.f8fb96.zip" }, { "name": "conemu-maximus5", @@ -21,7 +21,7 @@ }, { "name": "clink-completions", - "version": "0.5.2", - "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.5.2.zip" + "version": "0.6.0", + "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.0.zip" } ]