mirror of
				https://github.com/cmderdev/cmder.git
				synced 2025-10-31 17:32:27 +08:00 
			
		
		
		
	
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -15,6 +15,7 @@ vendor/git-for-windows | ||||
|  | ||||
| config/* | ||||
| !config/Readme.md | ||||
| !config/profile.d/README.md | ||||
|  | ||||
| config_user/* | ||||
|  | ||||
|   | ||||
							
								
								
									
										18
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								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. | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
							
								
								
									
										3
									
								
								config/profile.d/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								config/profile.d/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -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. | ||||
| @@ -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); | ||||
| 				} | ||||
|   | ||||
| @@ -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" | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/bin/alias.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/bin/alias.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -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 /? | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/bin/cexec.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/bin/cexec.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -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: | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/cmder.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/cmder.sh
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/cmder_exinit
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/cmder_exinit
									
									
									
									
										vendored
									
									
								
							| @@ -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. | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/init.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/init.bat
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/lib/lib_git.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/lib/lib_git.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|         ) | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/lib/lib_path.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/lib/lib_path.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -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] <in> Max recuse depth.  Default: 1 | ||||
| :::  [max_depth] <in> Max recursion depth.  Default: 1 | ||||
| :::. | ||||
| :::  append      <in> Append instead to path env variable rather than pre-pend. | ||||
| :::. | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/profile.ps1
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/profile.ps1
									
									
									
									
										vendored
									
									
								
							| @@ -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 | ||||
|   | ||||
							
								
								
									
										14
									
								
								vendor/psmodules/PsGet/PsGet.psm1
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/psmodules/PsGet/PsGet.psm1
									
									
									
									
										vendored
									
									
								
							| @@ -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 { | ||||
|   | ||||
							
								
								
									
										12
									
								
								vendor/sources.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/sources.json
									
									
									
									
										vendored
									
									
								
							| @@ -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", | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/user_profile.cmd.default
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/user_profile.cmd.default
									
									
									
									
										vendored
									
									
								
							| @@ -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" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user