diff --git a/.gitignore b/.gitignore index 771fd1a..3431088 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ vendor/git-for-windows config/* !config/Readme.md +!config/profile.d/README.md config_user/* diff --git a/CHANGELOG.md b/CHANGELOG.md index 26aeaf3..1f103e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,25 @@ ### Changes -- Update Git for Windows to 2.31.1 -- Update to Clink 1.2.26 -- Update to Conemu 210718 +- Update Git for Windows to 2.34.0 +- Update to Clink 1.2.46 +- Update to stable Conemu 210912 - Do not rely on having a `%cmder_root%\config\cmder_prompt_config.lua` ### Adds +- Powershell Git version Discovery - See #2373 for the full proposal. + - Find user installed Git on Path + - If found + - if newer than Cmder embedded Git + - Use it's existing Path config and completely ignore embedded Git. + - Else if Cmder embedded Git exists and is newer + - Match User installed Git path config using Cmder embedded Git folders. + - Else if Cmder embedded Git exists + - Add Cmder embedded Git folders to the path. + - `$env:cmder_root\vendor\git-for-windows\cmd;$env:path` + - `$env:path;$env:cmder_root\vendor\git-for-windows\usr\bin` + - `$env:path;$env:cmder_root\vendor\git-for-windows\mingw64\bin` - Configurable prompt for `cmd.exe` sessions. See `%cmder_root%\config\cmder_prompt_config.lua` - Configurable colors - Option to change `λ` to another character. diff --git a/README.md b/README.md index a8b70a6..af3c913 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ The Cmder's user interface is also designed to be more eye pleasing, and you can | `/SINGLE` | Start Cmder in single mode. | | `/START [start_path]` | Folder path to start in. | | `/TASK [task_name]` | Task to start after launch. | -| `/X [ConEmu extras pars]` | Forwads parameters to ConEmu | +| `/X [ConEmu extras pars]` | Forwards parameters to ConEmu | ## Context Menu Integration @@ -138,7 +138,7 @@ You may find some Monokai color schemes for mintty to match Cmder [here](https:/ ### Changing Cmder Default `cmd.exe` Prompt Config File -The default Cmder shell `cmd::Cmder` propmt is customized using `Clink` and is configured by editing a config file that exists in one of two locations: +The default Cmder shell `cmd::Cmder` prompt is customized using `Clink` and is configured by editing a config file that exists in one of two locations: - Single User Portable Config `%CMDER_ROOT%\config\cmder_prompt_config.lua` - Shared Cmder install with Non-Portable Individual User Config `%CMDER_USER_CONFIG%\cmder_prompt_config.lua` @@ -177,7 +177,7 @@ Documentation is in the file for each setting. | `/c [user cmder root]` | Enables user bin and config folders for 'Cmder as admin' sessions due to non-shared environment. | not set | | `/d` | Enables debug output. | not set | | `/f` | Enables Cmder Fast Init Mode. This disables some features, see pull request [#1492](https://github.com/cmderdev/cmder/pull/1942) for more details. | not set | -| `/t` | Enables Cmder Timed Init Mode. This displays the time taken run init scripts | not set | +| `/t` | Enables Cmder Timed Init Mode. This displays the time taken run init scripts | not set | | `/git_install_root [file path]` | User specified Git installation root path. | `%CMDER_ROOT%\vendor\Git-for-Windows` | | `/home [home folder]` | User specified folder path to set `%HOME%` environment variable. | `%userprofile%` | | `/max_depth [1-5]` | Define max recurse depth when adding to the path for `%cmder_root%\bin` and `%cmder_user_bin%` | 1 | @@ -185,7 +185,7 @@ Documentation is in the file for each setting. | `/svn_ssh [path to ssh.exe]` | Define `%SVN_SSH%` so we can use git svn with ssh svn repositories. | `%GIT_INSTALL_ROOT%\bin\ssh.exe` | | `/user_aliases [file path]` | File path pointing to user aliases. | `%CMDER_ROOT%\config\user_aliases.cmd` | | `/v` | Enables verbose output. | not set | -| (custom arguments) | User defined arguments processed by `cexec`. Type `cexec /?` for more useage. | not set | +| (custom arguments) | User defined arguments processed by `cexec`. Type `cexec /?` for more usage. | not set | ### Cmder Shell User Config Single user portable configuration is possible using the cmder specific shell config files. Edit the below files to add your own configuration: diff --git a/config/profile.d/README.md b/config/profile.d/README.md new file mode 100644 index 0000000..4883147 --- /dev/null +++ b/config/profile.d/README.md @@ -0,0 +1,3 @@ +## Profile.d Folder + +* Files in this folder named `*.{sh|cmd|ps1}`: Will be executed by the appropriate shell when starting the shell. diff --git a/launcher/src/CmderLauncher.cpp b/launcher/src/CmderLauncher.cpp index 05d3f99..5d36566 100644 --- a/launcher/src/CmderLauncher.cpp +++ b/launcher/src/CmderLauncher.cpp @@ -250,7 +250,7 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr { MessageBox(NULL, (GetLastError() == ERROR_ACCESS_DENIED) - ? L"Failed to copy conig/ConEmu-%COMPUTERNAME%.xml file to vendor/conemu-maximus5/ConEmu.xml! Access Denied." + ? L"Failed to copy config/ConEmu-%COMPUTERNAME%.xml file to vendor/conemu-maximus5/ConEmu.xml! Access Denied." : L"Failed to copy config/ConEmu-%COMPUTERNAME%.xml file to vendor/conemu-maximus5/ConEmu.xml!", MB_TITLE, MB_ICONSTOP); exit(1); } diff --git a/scripts/utils.ps1 b/scripts/utils.ps1 index fe5aa47..4447aec 100644 --- a/scripts/utils.ps1 +++ b/scripts/utils.ps1 @@ -31,7 +31,7 @@ function Extract-Archive($source, $target) { Write-Verbose $("Extracting Archive '$cmder_root\vendor\" + $source.replace('/','\') + " to '$cmder_root\vendor\$target'") Invoke-Expression "7z x -y -o`"$($target)`" `"$source`" > `$null" if ($lastexitcode -ne 0) { - Write-Error "Extracting of $source failied" + Write-Error "Extracting of $source failed" } Remove-Item $source } @@ -41,7 +41,7 @@ function Create-Archive($source, $target, $params) { Write-Verbose "Running: $command" Invoke-Expression $command if ($lastexitcode -ne 0) { - Write-Error "Compressing $source failied" + Write-Error "Compressing $source failed" } } diff --git a/vendor/bin/alias.cmd b/vendor/bin/alias.cmd index ac2525c..462131e 100644 --- a/vendor/bin/alias.cmd +++ b/vendor/bin/alias.cmd @@ -140,9 +140,9 @@ echo. in he alias is desired. Variables in aliases surrounded by double echo. quotes only require '^^%%' vs '^^^^^^^^%%' echo. $* - allows the alias to assume all the parameters of the supplied echo. command. -echo. $1-$9 - Allows you to seperate parameter by number, much like %%1 in +echo. $1-$9 - Allows you to separate parameter by number, much like %%1 in echo. batch. -echo. $T - Command seperator, allowing you to string several commands +echo. $T - Command separator, allowing you to string several commands echo. together into one alias. echo. echo. For more information, read DOSKEY /? diff --git a/vendor/bin/cexec.cmd b/vendor/bin/cexec.cmd index ee5efa8..755cfae 100644 --- a/vendor/bin/cexec.cmd +++ b/vendor/bin/cexec.cmd @@ -84,29 +84,29 @@ echo Usage: echo. echo cexec /setPath [NOT] flagName command/program [parameters] echo. -echo /setPath Generate a global varibles %%ccall%% and %%cexec%% for +echo /setPath Generate a global variables %%ccall%% and %%cexec%% for echo quicker use. Following arguments will be ignored. echo. echo NOT Specifies that cexec should carry out echo the command only if the flag is missing. echo. -echo /[flagName] Specifies which flag name is to detect. It's recommand +echo /[flagName] Specifies which flag name is to detect. It's recommended echo to use a pair of double quotation marks to wrap echo your flag name to avoid exceed expectation. echo. echo command/program Specifies the command to carry out if the -echo argument name is detected. It's recommand to +echo argument name is detected. It's recommended to echo use a pair of double quotation marks to echo wrap your command to avoid exceed expectation. echo. echo parameters These are the parameters passed to the command/program. -echo It's recommand to use a pair of double quotation marks +echo It's recommended to use a pair of double quotation marks echo to wrap your flag name to avoid exceed expectation. echo. echo Examples: echo. echo These examples are expected to be written in %cmder_root%/config/user-profile.cmd -echo CExec evaluates the environment varible "CMDER_USER_FLAGS" and conditionally +echo CExec evaluates the environment variable "CMDER_USER_FLAGS" and conditionally echo caries out actions based on flags that are passed. echo. echo Case 1: diff --git a/vendor/cmder.sh b/vendor/cmder.sh index 7ccddcf..4074346 100644 --- a/vendor/cmder.sh +++ b/vendor/cmder.sh @@ -42,10 +42,10 @@ elif [ -d "${CMDER_ROOT}/vendor/git-for-windows" ] ; then fi if [[ ! "$PATH" =~ "${GIT_INSTALL_ROOT}/bin:" ]] ; then - PATH=${GIT_INSTALL_ROOT}/bin:$PATH + PATH="${GIT_INSTALL_ROOT}/bin:$PATH" fi -PATH=${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT} +PATH="${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT}" export PATH @@ -80,7 +80,7 @@ if [ "${CMDER_USER_CONFIG}" != "" ] ; then mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh" fi - export PATH=${CMDER_USER_CONFIG}/bin:$PATH + export PATH="${CMDER_USER_CONFIG}/bin:$PATH" CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh" if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then diff --git a/vendor/cmder_exinit b/vendor/cmder_exinit index 095a1e9..4ec3351 100644 --- a/vendor/cmder_exinit +++ b/vendor/cmder_exinit @@ -10,7 +10,7 @@ # zsh - Copy to /etc/profile.d/cmder_exinit.zsh # Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh or # add whole config scripts to ${CMDER_ROOT}/config/profile.d both will be sourced -# from mthis file and be appied to the environment at startup. +# from this file and be applied to the environment at startup. # # These customizations will follow Cmder if $CMDER_ROOT is copied # to another machine. diff --git a/vendor/init.bat b/vendor/init.bat index 3b1bf6a..e5da902 100644 --- a/vendor/init.bat +++ b/vendor/init.bat @@ -131,7 +131,7 @@ goto var_loop if defined CMDER_USER_CONFIG ( %print_debug% 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" + if not exist "%CMDER_USER_CONFIG%\..\opt" md "%CMDER_USER_CONFIG%\..\opt" ) :: Pick right version of clink diff --git a/vendor/lib/lib_git.cmd b/vendor/lib/lib_git.cmd index 3e095a6..19d2af7 100644 --- a/vendor/lib/lib_git.cmd +++ b/vendor/lib/lib_git.cmd @@ -14,7 +14,7 @@ exit /b :read_version :::=============================================================================== -:::read_version - Get the git.exe verion +:::read_version - Get the git.exe version :::. :::include: :::. @@ -54,7 +54,7 @@ exit /b if /i "%%A %%B" == "git version" ( set "GIT_VERSION=%%C" ) else ( - echo "'git --version' returned an inproper version string!" + echo "'git --version' returned an improper version string!" pause exit /b ) diff --git a/vendor/lib/lib_path.cmd b/vendor/lib/lib_path.cmd index 5788c35..933d2f3 100644 --- a/vendor/lib/lib_path.cmd +++ b/vendor/lib/lib_path.cmd @@ -121,8 +121,8 @@ exit /b exit /b :toolong - echo %OLD_PATH%>tempfileA - echo %PATH%>tempfileB + echo "%OLD_PATH%">tempfileA + echo "%PATH%">tempfileB fc /b tempfileA tempfileB 2>nul 1>nul if errorlevel 1 ( del tempfileA & del tempfileB & goto :changed ) del tempfileA & del tempfileB @@ -162,7 +162,7 @@ exit /b :::. :::options: :::. -::: [max_depth] Max recuse depth. Default: 1 +::: [max_depth] Max recursion depth. Default: 1 :::. ::: append Append instead to path env variable rather than pre-pend. :::. diff --git a/vendor/profile.ps1 b/vendor/profile.ps1 index ea3df01..23384c5 100644 --- a/vendor/profile.ps1 +++ b/vendor/profile.ps1 @@ -14,7 +14,7 @@ if ($ENV:CMDER_USER_CONFIG) { # write-host "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '$ENV:CMDER_USER_CONFIG'!" } -# We do this for Powershell as Admin Sessions because CMDER_ROOT is not beng set. +# We do this for Powershell as Admin Sessions because CMDER_ROOT is not being set. if (! $ENV:CMDER_ROOT ) { if ( $ENV:ConEmuDir ) { $ENV:CMDER_ROOT = resolve-path( $ENV:ConEmuDir + "\..\.." ) @@ -44,7 +44,7 @@ $gitVersionVendor = (readVersion -gitPath "$ENV:CMDER_ROOT\vendor\git-for-window # write-host "GIT VENDOR: ${gitVersionVendor}" # Get user installed Git Version[s] and Compare with vendored if found. -foreach ($git in (get-command -ErrorAction SilentlyContinue -all 'git')) { +foreach ($git in (get-command -ErrorAction SilentlyContinue 'git')) { # write-host "GIT Path: " + $git.Path $gitDir = Split-Path -Path $git.Path $gitDir = isGitShim -gitPath $gitDir diff --git a/vendor/psmodules/PsGet/PsGet.psm1 b/vendor/psmodules/PsGet/PsGet.psm1 index ad3f886..b0094b9 100644 --- a/vendor/psmodules/PsGet/PsGet.psm1 +++ b/vendor/psmodules/PsGet/PsGet.psm1 @@ -124,7 +124,7 @@ Set-Variable -Name PSGET_PSD1 -Value 'PSD1' -Option Constant -Scope Script Description ----------- - Installs the module witout importing it to the current session + Installs the module without importing it to the current session .EXAMPLE # Install-Module PoshHg -AddToProfile @@ -448,7 +448,7 @@ function Update-Module { Description ----------- - Retrieves information about all registerd modules that starts with PoshCo. + Retrieves information about all registered modules that start with PoshCo. #> function Get-PsGetModuleInfo { [CmdletBinding()] @@ -694,7 +694,7 @@ function Install-ModuleFromDirectory { throw "Module $Module was not found in central repository" } - # $Module and $moduleData.Id are not equally by garantee, so we have to test again. + # $Module and $moduleData.Id are not equally by guarantee, so we have to test again. if (Test-ModuleInstalledAndImport -ModuleName:$moduleData.ModuleName -Destination:$Destination -Update:$Update -DoNotImport:$DoNotImport -ModuleHash:$ModuleHash) { return } @@ -1488,7 +1488,7 @@ function Invoke-DownloadModuleFromWeb { Install the module inside of the provided directory into the defined destination and perform the following steps: - * Rename module if requestes by provided InstallWithModuleName + * Rename module if requested by provided InstallWithModuleName * If a ModuleHash is provided, check if it matches. * Add the destination path to the PSModulePath if necessary (depends on provided parameters) * Place the conventions-matching module folder in the destination folder @@ -1796,9 +1796,9 @@ function Test-ModuleInstalledAndImport { <# .SYNOPSIS - Extract the content of the referenced zip file to the defind destination + Extract the content of the referenced zip file to the defined destination - .PARAMATER Path + .PARAMETER Path Path to a zip file with the file extension '.zip' .Parameter Destination @@ -1856,7 +1856,7 @@ function Expand-ZipModule { <# .SYNOPSIS - Update '$env:PSModulePath' from 'User' and 'Machine' scope envrionment variables + Update '$env:PSModulePath' from 'User' and 'Machine' scope environment variables #> function Update-PSModulePath { process { @@ -2152,4 +2152,4 @@ Export-ModuleMember TabExpansion Export-ModuleMember -Alias inmo Export-ModuleMember -Alias ismo Export-ModuleMember -Alias upmo -#endregion \ No newline at end of file +#endregion diff --git a/vendor/sources.json b/vendor/sources.json index b7f55a2..f559553 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,18 +1,18 @@ [ { "name": "git-for-windows", - "version": "v2.31.1.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.31.1.windows.1/PortableGit-2.31.1-64-bit.7z.exe" + "version": "v2.34.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.34.0.windows.1/PortableGit-2.34.0-64-bit.7z.exe" }, { "name": "clink", - "version": "1.2.26", - "url": "https://github.com/chrisant996/clink/releases/download/v1.2.26/clink.1.2.26.3dc58b.zip" + "version": "1.2.46", + "url": "https://github.com/chrisant996/clink/releases/download/v1.2.46/clink.1.2.46.69fc92.zip" }, { "name": "conemu-maximus5", - "version": "210718", - "url": "https://github.com/Maximus5/ConEmu/releases/download/v21.07.18/ConEmuPack.210718.7z" + "version": "210912", + "url": "https://github.com/Maximus5/ConEmu/releases/download/v21.09.12/ConEmuPack.210912.7z" }, { "name": "clink-completions", diff --git a/vendor/user_profile.cmd.default b/vendor/user_profile.cmd.default index e5966e0..00c7fb5 100644 --- a/vendor/user_profile.cmd.default +++ b/vendor/user_profile.cmd.default @@ -12,7 +12,7 @@ :: set "PATH=%CMDER_ROOT%\vendor\whatever;%PATH%" :: arguments in this batch are passed from init.bat, you can quickly parse them like so: -:: more useage can be seen by typing "cexec /?" +:: more usage can be seen by typing "cexec /?" :: %ccall% "/customOption" "command/program"