Compare commits

...

57 Commits

Author SHA1 Message Date
c34eb73555 Merge pull request #2452 from daxgames/1.3.18
1.3.18
2021-03-26 05:45:35 -04:00
f7df79a2d7 CHANGELOG.md 2021-03-26 05:41:17 -04:00
0fd2d9c8a8 CHANGELOG.md 2021-03-25 19:14:18 -04:00
e918b18ca7 CHANGELOG.md 2021-03-25 19:13:03 -04:00
0a7f1623f7 fix path length check with fast_init set 2021-02-28 23:09:49 -05:00
d02be816e2 fix failure in lib_path if path is too long 2021-02-28 21:54:06 -05:00
8452f33407 changelog.md 2021-02-25 14:38:05 -05:00
a66b8b3035 Merge pull request #2458 from FTOH/patch-1
Fix: Incomplete operation when closing bash.exe
2021-02-09 09:07:15 -05:00
ed60c14a44 Merge pull request #2475 from simaek/patch-1
Fix some commands like 'ls' are not available
2021-02-09 09:04:45 -05:00
cc1d459ea9 Fix some commands like ls' are not available 2021-02-08 23:23:30 +08:00
633d673bd7 Fix escaping double quotes 2021-01-17 22:13:01 +07:00
a7e45ef64a Merge pull request #2464 from stephensolis/patch-1
Fix: "The system cannot find the file specified" if %GIT_INSTALL_ROOT%\usr\bin doesn't exist
2021-01-17 08:30:32 -05:00
10d63daf90 Fix enhance_path call if no usr\bin in %GIT_INSTALL_ROOT% 2021-01-16 23:34:22 +01:00
6c15598010 update to Clink 1.1.20 2021-01-12 09:01:39 -05:00
3608b5bc81 Added quotes as in previous commits 2021-01-11 15:03:52 +07:00
2d75a635de Fix: Incomplete operation when closing bash.exe 2021-01-11 14:22:54 +07:00
9cf3ba222e remove clink defaults 2021-01-09 09:43:37 -05:00
01d300f779 cleanup 2020-12-24 18:43:23 -05:00
ba1027f6d5 cleanup 2020-12-24 18:34:27 -05:00
b5d172cd32 cleanup 2020-12-24 18:33:10 -05:00
f362ba8dba spacing 2020-12-24 17:55:56 -05:00
783cf68d10 CLink migration and clenaup 2020-12-24 17:48:00 -05:00
c4fb7e6034 Merge branch 'master' of https://github.com/cmderdev/cmder into 1.3.17_fixes 2020-12-24 12:15:08 -05:00
da0af1d96b 1.3.17 Fixes for clink settings and history 2020-12-24 12:14:46 -05:00
9c9eac1875 Merge pull request #2449 from daxgames/alias_fix
Alias fix
2020-12-23 07:55:52 -05:00
ae0b7722ed CHANGELOG.md 2020-12-23 07:55:16 -05:00
bb2f89d044 CHANGELOG.md 2020-12-23 07:33:12 -05:00
24cad3ed5c fix 'alias ..=cd ..' removing 2 char aliases 2020-12-23 07:30:47 -05:00
ae7ddb7f86 Merge branch 'master' of https://github.com/cmderdev/cmder 2020-12-23 07:29:36 -05:00
e0b8ebc669 Clink fork fixes (#2441)
* debug

* remove debug

* Switch to chrisant996 Clink 1.1.8

* Update to Clink 1.1 10

* CHANGELOG.md

Co-authored-by: dgames <dgames@dtg.local>
2020-12-21 21:30:30 +00:00
00b22ea79a Update clink-completions to 0.3.6 (#2440)
https://github.com/vladimir-kotikov/clink-completions/releases/tag/0.3.6
2020-12-17 10:26:59 +00:00
eb8e470fe3 Merge branch 'master' of https://github.com/cmderdev/cmder 2020-12-11 05:52:31 -05:00
9088a5e2e6 Merge pull request #2430 from qfp64/faster-init
Improve init speed
2020-12-11 05:48:07 -05:00
25bc575e8a Merge pull request #2390 from daxgames/sysinfo
add systeminfo.exe output to cmder_diag.*
2020-12-11 05:42:22 -05:00
0ff3b391f1 Merge branch 'master' of https://github.com/cmderdev/cmder into master 2020-12-11 03:47:19 -05:00
11a78a8d64 Fix errors 2020-12-10 13:35:40 +00:00
2a9a4d2860 Speed up calls to lib_console 2020-12-07 19:41:11 +00:00
4874e78953 remove debug 2020-12-06 10:56:58 -05:00
f4988480f6 debug 2020-12-06 09:23:23 -05:00
44f5095047 fix docs for user-aliases.cmd #2397 (#2398) 2020-10-27 17:32:05 +00:00
2205461943 Update git for windows to 2.29.1 (#2410) 2020-10-27 17:31:19 +00:00
467b4d4ad9 hide possible file write conflict 2020-09-13 08:27:10 -04:00
ea6e18c834 hide possible file write confilct 2020-09-13 08:02:46 -04:00
4378741aad add systeminfo.exe output 2020-09-12 06:10:41 -04:00
6458199812 Merge pull request #2380 from daxgames/fix_git_not_expected
Fix `\Git\cmd\git.exe" found." was unexpected at this time.`
2020-08-31 19:11:19 -04:00
d1adf16fa8 'fixes' 2020-08-24 20:27:56 -04:00
cda883bc39 add setlocal 2020-08-23 08:47:20 -04:00
b1ef763922 add setlocal 2020-08-23 08:42:58 -04:00
2cd7632720 Merge pull request #2376 from MMShep97/update-readme-links
Update readme links
2020-08-15 09:02:51 -04:00
92169c1295 Deletes link to non-existent repo :( 2020-08-14 17:57:50 -05:00
e0aba11018 Updates readme link to correct path
Fixes capitalization

Fixes opt to be bin

Updates readme link to correct path
2020-08-14 17:47:24 -05:00
e8fe522a99 Merge pull request #2372 from cmderdev/revert-2371-revert-2369-fix-powershell-prompt
Revert "Revert "Update profile.ps1""
2020-08-13 12:19:36 -04:00
937874f03c Revert "Revert "Update profile.ps1"" 2020-08-13 07:29:24 -04:00
9e085f5938 Merge pull request #2371 from cmderdev/revert-2369-fix-powershell-prompt
Revert "Update profile.ps1"
2020-08-13 07:09:20 -04:00
829a65f552 Revert "Update profile.ps1" 2020-08-13 07:08:20 -04:00
93b69798f4 Merge pull request #2369 from mcnubblet/fix-powershell-prompt
Update profile.ps1
2020-08-13 06:48:01 -04:00
3f6aa3b348 Update profile.ps1
Set utf-8 BOM in profile.ps1 to fix incorrect prompt display in PowerShell
2020-08-13 14:05:49 +10:00
18 changed files with 219 additions and 241 deletions

View File

@ -1,5 +1,28 @@
# Change Log # Change Log
## [1.3.18](https://github.com/cmderdev/cmder/tree/v1.3.18) (2021-3-26)
### Changes
- Update to Clink 1.1.45 to fix #2451, #2465, and #2473
- Update to ConEmu v21.03.04
- `init.bat` auto migrates the history alias to use `clink history` if required.
- Remove Tilde match from clink.lua in favor of builtin Clink capability.
## [1.3.17](https://github.com/cmderdev/cmder/tree/v1.3.17) (2020-12-23)
### Fixes
- [bug] Running `alias ..=cd ..` removes other aliases #2394
- Switch to @chrisant996 [Clink](https://github.com/chrisant996/clink/) v1.1.10 to fix Clink newer Windows 10 releases.
- Fix `\Git\cmd\git.exe found. was unexpected at this time.`
- Documentation fixes.
### Changes
- Update Git to 2.29.0
- Improve `init.bat` Speed
- Add `systeminfo.exe` output to iag scripts.
## [1.3.16](https://github.com/cmderdev/cmder/tree/v1.3.16) (2020-07-29) ## [1.3.16](https://github.com/cmderdev/cmder/tree/v1.3.16) (2020-07-29)
### Fixes ### Fixes

View File

@ -23,10 +23,10 @@ The Cmder's user interface is also designed to be more eye pleasing, and you can
### Shared Cmder install with Non-Portable Individual User Config ### Shared Cmder install with Non-Portable Individual User Config
1. Download the [latest release](https://github.com/cmderdev/cmder/releases/) 1. Download the [latest release](https://github.com/cmderdev/cmder/releases/)
2. Extract the archive to a shared location. 2. Extract the archive to a shared location.
3. (optional) Place your own executable files and custom app folders into the `%cmder_root%\bin`. See: [opt/README.md](./bin/README) 3. (optional) Place your own executable files and custom app folders into the `%cmder_root%\bin`. See: [bin/README.md](./bin/Readme.md)
- This folder to be injected into your PATH by default. - This folder to be injected into your PATH by default.
- See `/max_depth [1-5]` in 'Command Line Arguments for `init.bat`' table to add subdirectories recursively. - See `/max_depth [1-5]` in 'Command Line Arguments for `init.bat`' table to add subdirectories recursively.
4. (optional) Place your own custom app folders into the `%cmder_root%\opt`. See: [opt/README.md](./opt/README) 4. (optional) Place your own custom app folders into the `%cmder_root%\opt`. See: [opt/README.md](./opt/Readme.md)
- This folder will NOT be injected into your PATH so you have total control of what gets added. - This folder will NOT be injected into your PATH so you have total control of what gets added.
5. Run `Cmder.exe` with `/C` command line argument. Example: `cmder.exe /C %userprofile%\cmder_config` 5. Run `Cmder.exe` with `/C` command line argument. Example: `cmder.exe /C %userprofile%\cmder_config`
* This will create the following directory structure if it is missing. * This will create the following directory structure if it is missing.
@ -134,7 +134,7 @@ cd mintty-colors-solarized/
echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh
``` ```
You may find some Monokai color schemes for mintty to match Cmder [here](https://github.com/PhilipDaniels/mintty/blob/master/themes/Monokai) or [here](https://github.com/oumu/mintty-color-schemes/blob/master/base16-monokai-mod.minttyrc). You may find some Monokai color schemes for mintty to match Cmder [here](https://github.com/oumu/mintty-color-schemes/blob/master/base16-monokai-mod.minttyrc).
### Changing Cmder Default `cmd.exe` Shell Startup Behaviour Using Task Arguments ### Changing Cmder Default `cmd.exe` Shell Startup Behaviour Using Task Arguments
@ -163,7 +163,7 @@ You may find some Monokai color schemes for mintty to match Cmder [here](https:/
| `/max_depth [1-5]` | Define max recurse depth when adding to the path for `%cmder_root%\bin` and `%cmder_user_bin%` | 1 | | `/max_depth [1-5]` | Define max recurse depth when adding to the path for `%cmder_root%\bin` and `%cmder_user_bin%` | 1 |
| `/nix_tools [0-2]` | Define how `*nix` tools are added to the path. Prefer Windows Tools: 1, Prefer *nix Tools: 2, No `/usr/bin` in `%PATH%`: 0 | 1 | | `/nix_tools [0-2]` | Define how `*nix` tools are added to the path. Prefer Windows Tools: 1, Prefer *nix Tools: 2, No `/usr/bin` in `%PATH%`: 0 | 1 |
| `/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` | | `/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` | | `/user_aliases [file path]` | File path pointing to user aliases. | `%CMDER_ROOT%\config\user_aliases.cmd` |
| `/v` | Enables verbose output. | not set | | `/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 useage. | not set |
@ -206,14 +206,14 @@ You can define simple aliases for `cmd.exe` sessions with a command like `alias
Cmd.exe aliases can also be more complex. See: [DOSKEY.EXE documentation](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey) for additional details on complex aliases/macros for `cmd.exe` Cmd.exe aliases can also be more complex. See: [DOSKEY.EXE documentation](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey) for additional details on complex aliases/macros for `cmd.exe`
Aliases defined using the `alias.bat` command will automatically be saved in the `%CMDER_ROOT%\config\user-aliases.cmd` file Aliases defined using the `alias.bat` command will automatically be saved in the `%CMDER_ROOT%\config\user_aliases.cmd` file
To make an alias and/or any other profile settings permanent add it to one of the following: To make an alias and/or any other profile settings permanent add it to one of the following:
Note: These are loaded in this order by `$CMDER_ROOT/vendor/init.bat`. Anything stored in `%CMDER_ROOT%` will be a portable setting and will follow cmder to another machine. Note: These are loaded in this order by `$CMDER_ROOT/vendor/init.bat`. Anything stored in `%CMDER_ROOT%` will be a portable setting and will follow cmder to another machine.
* `%CMDER_ROOT%\config\profile.d\*.cmd` and `\*.bat` * `%CMDER_ROOT%\config\profile.d\*.cmd` and `\*.bat`
* `%CMDER_ROOT%\config\user-aliases.cmd` * `%CMDER_ROOT%\config\user_aliases.cmd`
* `%CMDER_ROOT%\config\user_profile.cmd` * `%CMDER_ROOT%\config\user_profile.cmd`
#### Bash.exe|Mintty.exe Aliases #### Bash.exe|Mintty.exe Aliases
@ -278,7 +278,7 @@ Uncomment and edit the below line in the script to use Cmder config even when la
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder. # CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
``` ```
### Customizing user sessions using `init.bat` custom arguments. ### Customizing user sessions using `init.bat` custom arguments.
You can pass custom arguments to `init.bat` and use `cexec.cmd` in your `user_profile.cmd` to evaluate these You can pass custom arguments to `init.bat` and use `cexec.cmd` in your `user_profile.cmd` to evaluate these
arguments then execute commands based on a particular flag being detected or not. arguments then execute commands based on a particular flag being detected or not.
@ -289,7 +289,7 @@ arguments then execute commands based on a particular flag being detected or not
``` ```
ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd
``` ```
Example: `%ccall% /startnotepad start notepad.exe` Example: `%ccall% /startnotepad start notepad.exe`
@ -311,17 +311,17 @@ To conditionally start `notepad.exe` when you start a specific `cmder` task:
* Add the below to the `Commands` block: * Add the below to the `Commands` block:
```batch ```batch
cmd.exe /k ""%ConEmuDir%\..\init.bat" /startnotepad" cmd.exe /k ""%ConEmuDir%\..\init.bat" /startnotepad"
``` ```
* Add the below to your `%cmder_root%\config\user_profile.cmd` * Add the below to your `%cmder_root%\config\user_profile.cmd`
```batch ```batch
%ccall% "/startNotepad" "start" "notepad.exe"` %ccall% "/startNotepad" "start" "notepad.exe"`
``` ```
To see detailed usage of `cexec`, type `cexec /?` in cmder. To see detailed usage of `cexec`, type `cexec /?` in cmder.

View File

@ -549,14 +549,14 @@
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/> <value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Active" type="long" data="0"/> <value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/> <value name="Count" type="long" data="1"/>
<value name="Cmd1" type="string" data="*cmd /c &quot;&quot;%ConEmuDir%\..\git-for-windows\bin\bash&quot; --login -i&quot;"/> <value name="Cmd1" type="string" data="*&quot;%ConEmuDir%\..\git-for-windows\usr\bin\bash.exe&quot; --login -i"/>
</key> </key>
<key name="Task8" modified="2018-02-22 06:05:13" build="171109"> <key name="Task8" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{bash::bash}"/> <value name="Name" type="string" data="{bash::bash}"/>
<value name="Flags" type="dword" data="00000000"/> <value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/> <value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/> <value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="cmd /c &quot;&quot;%ConEmuDir%\..\git-for-windows\bin\bash&quot; --login -i&quot;"/> <value name="Cmd1" type="string" data="&quot;%ConEmuDir%\..\git-for-windows\usr\bin\bash.exe&quot; --login -i"/>
<value name="Active" type="long" data="0"/> <value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/> <value name="Count" type="long" data="1"/>
</key> </key>

View File

@ -91,7 +91,7 @@ if not ["%_temp%"] == ["%alias_name%"] (
) )
:: replace already defined alias :: replace already defined alias
%WINDIR%\System32\findstr /b /v /i "%alias_name%=" "%ALIASES%" >> "%ALIASES%.tmp" %WINDIR%\System32\findstr /b /l /v /i "%alias_name%=" "%ALIASES%" >> "%ALIASES%.tmp"
echo %alias_name%=%alias_value% >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp" echo %alias_name%=%alias_value% >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
doskey /macrofile="%ALIASES%" doskey /macrofile="%ALIASES%"
endlocal endlocal
@ -99,7 +99,8 @@ exit /b
:p_del :p_del
set del_alias=%~1 set del_alias=%~1
%WINDIR%\System32\findstr /b /v /i "%del_alias%=" "%ALIASES%" >> "%ALIASES%.tmp"
%WINDIR%\System32\findstr /b /l /v /i "%del_alias%=" "%ALIASES%" >> "%ALIASES%.tmp"
type "%ALIASES%".tmp > "%ALIASES%" & @del /f /q "%ALIASES%.tmp" type "%ALIASES%".tmp > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
doskey %del_alias%= doskey %del_alias%=
doskey /macrofile="%ALIASES%" doskey /macrofile="%ALIASES%"

View File

@ -1,5 +1,4 @@
@echo off @echo off
setlocal
if "%~1" equ "" goto :wrongSyntax if "%~1" equ "" goto :wrongSyntax
@ -8,6 +7,7 @@ if not defined CMDER_USER_FLAGS (
set "CMDER_USER_FLAGS= " set "CMDER_USER_FLAGS= "
) )
set "feNot=false" set "feNot=false"
goto :parseArgument goto :parseArgument
@ -17,10 +17,8 @@ goto :parseArgument
:parseArgument :parseArgument
set "currenArgu=%~1" set "currenArgu=%~1"
if /i "%currenArgu%" equ "/setPath" ( if /i "%currenArgu%" equ "/setPath" (
:: set %flag_exists% shortcut set ccall=call "%~dp0cexec.cmd"
endlocal set cexec="%~dp0cexec.cmd"
set "ccall=call ^"%~dp0cexec.cmd^""
set "cexec=^"%~dp0cexec.cmd^""
) else if /i "%currenArgu%" == "/?" ( ) else if /i "%currenArgu%" == "/?" (
goto :help goto :help
) else if /i "%currenArgu%" equ "/help" ( ) else if /i "%currenArgu%" equ "/help" (

View File

@ -35,6 +35,12 @@ echo where git
echo ------------------------------------ echo ------------------------------------
where git where git
echo.
echo ------------------------------------
echo systeminfo
echo ------------------------------------
systeminfo
echo. echo.
echo ------------------------------------ echo ------------------------------------
echo Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team! echo Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team!

View File

@ -33,6 +33,12 @@ write-host get-command git
write-host ------------------------------------ write-host ------------------------------------
get-command git get-command git
write-host ''
write-host ------------------------------------
write-host systeminfo
write-host ------------------------------------
systeminfo
write-host '' write-host ''
write-host ------------------------------------ write-host ------------------------------------
write-host Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team! write-host Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team!

View File

@ -31,7 +31,13 @@ echo ''
echo ------------------------------------ echo ------------------------------------
echo which git echo which git
echo ------------------------------------ echo ------------------------------------
which git which git
echo ''
echo ------------------------------------
echo systeminfo
echo ------------------------------------
systeminfo
echo '' echo ''
echo ------------------------------------ echo ------------------------------------

17
vendor/clink.lua vendored
View File

@ -406,24 +406,7 @@ local function svn_prompt_filter()
return false return false
end end
local function tilde_match (text, f, l)
if text == '~' then
clink.add_match(clink.get_env('userprofile'))
clink.matches_are_files()
return true
end
if text:sub(1, 1) == '~' then
clink.add_match(string.gsub(text, "~", clink.get_env('userprofile'), 1))
-- second match prevents adding a space so we can look for more matches
clink.add_match(string.gsub(text, "~", clink.get_env('userprofile'), 1) .. '+')
clink.matches_are_files()
return true
end
end
-- insert the set_prompt at the very beginning so that it runs first -- insert the set_prompt at the very beginning so that it runs first
clink.register_match_generator(tilde_match, 1)
clink.prompt.register_filter(set_prompt_filter, 1) clink.prompt.register_filter(set_prompt_filter, 1)
clink.prompt.register_filter(hg_prompt_filter, 50) clink.prompt.register_filter(hg_prompt_filter, 50)
clink.prompt.register_filter(git_prompt_filter, 50) clink.prompt.register_filter(git_prompt_filter, 50)

View File

@ -1,116 +1,19 @@
# name: Pressing Ctrl-D exits session # For explanation of these and other settings see:
# type: bool # https://chrisant996.github.io/clink/clink.html
# Ctrl-D exits cmd.exe when it is pressed on an empty line.
ctrld_exits = 1
# name: Toggle if pressing Esc clears line
# type: bool
# Clink clears the current line when Esc is pressed (unless Readline's Vi mode
# is enabled).
esc_clears_line = 1
# name: Match display colour
# type: int
# Colour to use when displaying matches. A value less than 0 will be the
# opposite brightness of the default colour.
match_colour = -1
# name: Executable match style
# type: enum
# 0 = PATH only
# 1 = PATH and CWD
# 2 = PATH, CWD, and directories
# Changes how Clink will match executables when there is no path separator on
# the line. 0 = PATH only, 1 = PATH and CWD, 2 = PATH, CWD, and directories. In
# all cases both executables and directories are matched when there is a path
# separator present. A value of -1 will disable executable matching completely.
exec_match_style = 2
# name: Whitespace prefix matches files
# type: bool
# If the line begins with whitespace then Clink bypasses executable matching and
# will match all files and directories instead.
space_prefix_match_files = 1
# name: Colour of the prompt
# type: int
# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled
# when the value is less than 0.
prompt_colour = -1
# name: Auto-answer terminate prompt
# type: enum
# 0 = Disabled
# 1 = Answer 'Y'
# 2 = Answer 'N'
# Automatically answers cmd.exe's 'Terminate batch job (Y/N)?' prompts. 0 =
# disabled, 1 = answer 'Y', 2 = answer 'N'.
terminate_autoanswer = 0
# name: Lines of history saved to disk
# type: int
# When set to a positive integer this is the number of lines of history that
# will persist when Clink saves the command history to disk. Use 0 for infinite
# lines and <0 to disable history persistence.
history_file_lines = 10000
# name: Skip adding lines prefixed with whitespace
# type: bool
# Ignore lines that begin with whitespace when adding lines in to the history.
history_ignore_space = 0
# name: Controls how duplicate entries are handled
# type: enum
# 0 = Always add
# 1 = Ignore
# 2 = Erase previous
# If a line is a duplicate of an existing history entry Clink will erase the
# duplicate when this is set 2. A value of 1 will not add duplicates to the
# history and a value of 0 will always add lines. Note that history is not
# deduplicated when reading/writing to disk.
history_dupe_mode = 2
# name: Read/write history file each line edited
# type: bool
# When non-zero the history will be read from disk before editing a new line and
# written to disk afterwards.
history_io = 1
# name: Sets how command history expansion is applied # name: Sets how command history expansion is applied
# type: enum # type: enum
# 0 = Off # options: off,on,not_squoted,not_dquoted,not_quoted
# 1 = On history.expand_mode = not_dquoted
# 2 = Not in single quotes
# 3 = Not in double quote
# 4 = Not in any quotes
# The '!' character in an entered line can be interpreted to introduce words
# from the history. This can be enabled and disable by setting this value to 1
# or 0. Values or 2, 3 or 4 will skip any ! character quoted in single, double,
# or both quotes respectively.
history_expand_mode = 3
# name: Support Windows' Ctrl-Alt substitute for AltGr # name: Skip adding lines prefixed with whitespace
# type: bool # type: boolean
# Windows provides Ctrl-Alt as a substitute for AltGr, historically to support history.ignore_space = False
# keyboards with no AltGr key. This may collide with some of Readline's
# bindings.
use_altgr_substitute = 1
# name: Strips CR and LF chars on paste # name: The number of history lines to save
# type: enum # type: integer
# 0 = Paste unchanged history.max_lines = 10000
# 1 = Strip
# 2 = As space
# Setting this to a value >0 will make Clink strip CR and LF characters from
# text pasted into the current line. Set this to 1 to strip all newline
# characters and 2 to replace them with a space.
strip_crlf_on_paste = 2
# name: Enables basic ANSI escape code support
# type: bool
# When printing the prompt, Clink has basic built-in support for SGR ANSI escape
# codes to control the text colours. This is automatically disabled if a third
# party tool is detected that also provides this facility. It can also be
# disabled by setting this to 0.
ansi_code_support = 1
# name: Share history between instances
# type: boolean
history.shared = True

102
vendor/init.bat vendored
View File

@ -67,7 +67,7 @@ call "%cmder_root%\vendor\lib\lib_profile"
set "max_depth=%~2" set "max_depth=%~2"
shift shift
) else ( ) else (
%lib_console% show_error "'/max_depth' requires a number between 1 and 5!" %print_error% "'/max_depth' requires a number between 1 and 5!"
exit /b exit /b
) )
) else if /i "%1" == "/c" ( ) else if /i "%1" == "/c" (
@ -88,7 +88,7 @@ call "%cmder_root%\vendor\lib\lib_profile"
set "GIT_INSTALL_ROOT=%~2" set "GIT_INSTALL_ROOT=%~2"
shift shift
) else ( ) else (
%lib_console% show_error "The Git install root folder "%~2", you specified does not exist!" %print_error% "The Git install root folder "%~2", you specified does not exist!"
exit /b exit /b
) )
) else if /i "%1"=="/nix_tools" ( ) else if /i "%1"=="/nix_tools" (
@ -110,7 +110,7 @@ call "%cmder_root%\vendor\lib\lib_profile"
set "HOME=%~2" set "HOME=%~2"
shift shift
) else ( ) else (
%lib_console% show_error The home folder "%2", you specified does not exist! %print_error% The home folder "%2", you specified does not exist!
exit /b exit /b
) )
) else if /i "%1" == "/svn_ssh" ( ) else if /i "%1" == "/svn_ssh" (
@ -125,11 +125,11 @@ goto var_loop
:start :start
:: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES :: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES
%lib_base% cmder_shell %lib_base% cmder_shell
%lib_console% debug_output init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%" %print_debug% init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%"
%lib_console% debug_output init.bat "Env Var - debug_output=%debug_output%" %print_debug% init.bat "Env Var - debug_output=%debug_output%"
if defined CMDER_USER_CONFIG ( if defined CMDER_USER_CONFIG (
%lib_console% debug_output init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%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"
) )
@ -144,34 +144,55 @@ if "%PROCESSOR_ARCHITECTURE%"=="x86" (
) )
if "%CMDER_CLINK%" == "1" ( if "%CMDER_CLINK%" == "1" (
%lib_console% verbose_output "Injecting Clink!" %print_verbose% "Injecting Clink!"
:: Run clink :: Run clink
if defined CMDER_USER_CONFIG ( if defined CMDER_USER_CONFIG (
if not exist "%CMDER_USER_CONFIG%\settings" ( if not exist "%CMDER_USER_CONFIG%\settings" if not exist "%CMDER_USER_CONFIG%\clink_settings" (
echo Generating clink initial settings in "%CMDER_USER_CONFIG%\settings" echo Generating clink initial settings in "%CMDER_USER_CONFIG%\clink_settings"
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\settings" copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_USER_CONFIG%\clink_settings"
echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.\ echo Additional *.lua files in "%CMDER_USER_CONFIG%" are loaded on startup.
)
REM Cleanup lagacy Clink Settings file
if exist "%CMDER_USER_CONFIG%\settings" if exist "%CMDER_USER_CONFIG%\clink_settings" (
del "%CMDER_USER_CONFIG%\settings"
)
REM Cleanup legacy CLink history file
if exist "%CMDER_USER_CONFIG%\.history" if exist "%CMDER_USER_CONFIG%\clink_history" (
del "%CMDER_USER_CONFIG%\.history"
) )
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor" "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_USER_CONFIG%" --scripts "%CMDER_ROOT%\vendor"
) else ( ) else (
if not exist "%CMDER_ROOT%\config\settings" ( if not exist "%CMDER_ROOT%\config\settings" if not exist "%CMDER_ROOT%\config\clink_settings" (
echo Generating clink initial settings in "%CMDER_ROOT%\config\settings" echo Generating clink initial settings in "%CMDER_ROOT%\config\clink_settings"
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\settings" copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_ROOT%\config\clink_settings"
echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup. echo Additional *.lua files in "%CMDER_ROOT%\config" are loaded on startup.
) )
REM Cleanup lagacy Clink Settings file
if exist "%CMDER_ROOT%\config\settings" if exist "%CMDER_ROOT%\config\clink_settings" (
del "%CMDER_ROOT%\config\settings"
)
REM Cleanup legacy Clink history file
if exist "%CMDER_ROOT%\config\.history" if exist "%CMDER_ROOT%\config\clink_history" (
del "%CMDER_ROOT%\config\.history"
)
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor" "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor"
) )
) else ( ) else (
%lib_console% verbose_output "WARNING: Incompatible 'ComSpec/Shell' Detetected Skipping Clink Injection!" %print_verbose% "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!" %print_verbose% "Cmder is already configured, skipping Cmder Init!"
goto USER_ALIASES goto USER_ALIASES
) else if "%CMDER_CONFIGURED%" == "1" ( ) else if "%CMDER_CONFIGURED%" == "1" (
%lib_console% verbose_output "Cmder is already configured, skipping to Cmder User Init!" %print_verbose% "Cmder is already configured, skipping to Cmder User Init!"
goto USER_CONFIG_START goto USER_CONFIG_START
) )
@ -191,15 +212,15 @@ if defined GIT_INSTALL_ROOT (
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT
) else if "%fast_init%" == "1" ( ) else if "%fast_init%" == "1" (
if exist "%CMDER_ROOT%\vendor\git-for-windows\cmd\git.exe" ( if exist "%CMDER_ROOT%\vendor\git-for-windows\cmd\git.exe" (
%lib_console% debug_output "Skipping Git Auto-Detect!" %print_debug% "Skipping Git Auto-Detect!"
goto :VENDORED_GIT goto :VENDORED_GIT
) )
) )
%lib_console% debug_output init.bat "Looking for Git install root..." %print_debug% init.bat "Looking for Git install root..."
:: get the version information for vendored git binary :: get the version information for vendored git binary
%lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" %lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" 2>nul
%lib_git% validate_version VENDORED %GIT_VERSION_VENDORED% %lib_git% validate_version VENDORED %GIT_VERSION_VENDORED%
:: check if git is in path... :: check if git is in path...
@ -218,31 +239,31 @@ for /F "delims=" %%F in ('where git.exe 2^>nul') do (
:VENDORED_GIT :VENDORED_GIT
if exist "%CMDER_ROOT%\vendor\git-for-windows" ( if exist "%CMDER_ROOT%\vendor\git-for-windows" (
set "GIT_INSTALL_ROOT=%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%'..." %print_debug% "Using vendored Git '%GIT_VERSION_VENDORED%'..."
goto :CONFIGURE_GIT goto :CONFIGURE_GIT
) else ( ) else (
goto :NO_GIT goto :NO_GIT
) )
:SPECIFIED_GIT :SPECIFIED_GIT
%lib_console% debug_output "Using /GIT_INSTALL_ROOT..." %print_debug% "Using /GIT_INSTALL_ROOT..."
goto :CONFIGURE_GIT goto :CONFIGURE_GIT
:FOUND_GIT :FOUND_GIT
%lib_console% debug_output "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..." %print_debug% "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..."
goto :CONFIGURE_GIT goto :CONFIGURE_GIT
:CONFIGURE_GIT :CONFIGURE_GIT
%lib_console% debug_output "Using Git from '%GIT_INSTALL_ROOT%..." %print_debug% "Using Git from '%GIT_INSTALL_ROOT%..."
:: Add git to the path :: Add git to the path
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" "" if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" ""
:: Add the unix commands at the end to not shadow windows commands like more :: Add the unix commands at the end to not shadow windows commands like more
if %nix_tools% equ 1 ( if %nix_tools% equ 1 (
%lib_console% verbose_output "Preferring Windows commands" %print_verbose% "Preferring Windows commands"
set "path_position=append" set "path_position=append"
) else ( ) else (
%lib_console% verbose_output "Preferring *nix commands" %print_verbose% "Preferring *nix commands"
set "path_position=" set "path_position="
) )
@ -252,8 +273,9 @@ if %nix_tools% geq 1 (
) else if exist "%GIT_INSTALL_ROOT%\mingw64" ( ) 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%\mingw64\bin" %path_position%
) )
if exist "%GIT_INSTALL_ROOT%\usr\bin" (
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\usr\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 :: define SVN_SSH so we can use git svn with ssh svn repositories
@ -265,17 +287,20 @@ if not defined git_locale for /F "tokens=* delims=" %%F in ('where locale.exe 2^
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 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 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 )
setlocal enabledelayedexpansion
if defined git_locale ( if defined git_locale (
%lib_console% debug_output init.bat "Env Var - git_locale=%git_locale%"
REM %print_debug% init.bat "Env Var - git_locale=!git_locale!"
if not defined LANG ( if not defined LANG (
for /F "delims=" %%F in ('%git_locale% -uU 2') do ( for /F "delims=" %%F in ('!git_locale! -uU 2') do (
set "LANG=%%F" set "LANG=%%F"
) )
) )
) )
endlocal && set LANG=%LANG%
%lib_console% debug_output init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" %print_debug% init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%"
%lib_console% debug_output init.bat "Found Git in: '%GIT_INSTALL_ROOT%'" %print_debug% init.bat "Found Git in: '%GIT_INSTALL_ROOT%'"
goto :PATH_ENHANCE goto :PATH_ENHANCE
:NO_GIT :NO_GIT
@ -342,6 +367,13 @@ if "%CMDER_ALIASES%" == "1" (
) )
:: Add aliases to the environment :: Add aliases to the environment
type "%user_aliases%" | 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
echo Restart the session to activate changes!
)
call "%user_aliases%" call "%user_aliases%"
if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED if "%CMDER_CONFIGURED%" gtr "1" goto CMDER_CONFIGURED
@ -358,12 +390,12 @@ if exist "%GIT_INSTALL_ROOT%\post-install.bat" (
:: Set home path :: Set home path
if not defined HOME set "HOME=%USERPROFILE%" if not defined HOME set "HOME=%USERPROFILE%"
%lib_console% debug_output init.bat "Env Var - HOME=%HOME%" %print_debug% init.bat "Env Var - HOME=%HOME%"
set "initialConfig=%CMDER_ROOT%\config\user_profile.cmd" set "initialConfig=%CMDER_ROOT%\config\user_profile.cmd"
if exist "%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 REM Create this file and place your own command in there
%lib_console% debug_output init.bat "Calling - %CMDER_ROOT%\config\user_profile.cmd" %print_debug% init.bat "Calling - %CMDER_ROOT%\config\user_profile.cmd"
call "%CMDER_ROOT%\config\user_profile.cmd" call "%CMDER_ROOT%\config\user_profile.cmd"
) )
@ -371,7 +403,7 @@ if defined CMDER_USER_CONFIG (
set "initialConfig=%CMDER_USER_CONFIG%\user_profile.cmd" set "initialConfig=%CMDER_USER_CONFIG%\user_profile.cmd"
if exist "%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 REM Create this file and place your own command in there
%lib_console% debug_output init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd" %print_debug% init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd"
call "%CMDER_USER_CONFIG%\user_profile.cmd" call "%CMDER_USER_CONFIG%\user_profile.cmd"
) )
) )

View File

@ -3,6 +3,11 @@
call "%~dp0lib_base.cmd" call "%~dp0lib_base.cmd"
set lib_console=call "%~dp0lib_console.cmd" set lib_console=call "%~dp0lib_console.cmd"
:: Much faster than using "%lib_console% debug_output ..." etc.
set print_debug=if %debug_output% gtr 0 %lib_console% debug_output
set print_verbose=if %verbose_output% gtr 0 %lib_console% verbose_output
set print_error=%lib_console% show_error
if "%fast_init%" == "1" exit /b if "%fast_init%" == "1" exit /b
if "%~1" == "/h" ( if "%~1" == "/h" (

View File

@ -39,16 +39,15 @@ exit /b
:: set the executable path :: set the executable path
set "git_executable=%~2\git.exe" set "git_executable=%~2\git.exe"
%lib_console% debug_output :read_version "Env Var - git_executable=%git_executable%" %print_debug% :read_version "Env Var - git_executable=%git_executable%"
:: check if the executable actually exists :: check if the executable actually exists
if not exist "%git_executable%" ( if not exist "%git_executable%" (
%lib_console% debug_output :read_version "%git_executable% does not exist." %print_debug% :read_version "%git_executable% does not exist."
exit /b -255 exit /b -255
) )
:: get the git version in the provided directory :: get the git version in the provided directory
"%git_executable%" --version > "%temp%\git_version.txt" "%git_executable%" --version > "%temp%\git_version.txt"
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
for /F "tokens=1,2,3 usebackq" %%A in (`type "%temp%\git_version.txt" 2^>nul`) do ( for /F "tokens=1,2,3 usebackq" %%A in (`type "%temp%\git_version.txt" 2^>nul`) do (
@ -60,7 +59,7 @@ exit /b
exit /b exit /b
) )
) )
endlocal & set "GIT_VERSION_%~1=%GIT_VERSION%" & %lib_console% debug_output :read_version "Env Var - GIT_VERSION_%~1=%GIT_VERSION%" endlocal & set "GIT_VERSION_%~1=%GIT_VERSION%" & %print_debug% :read_version "Env Var - GIT_VERSION_%~1=%GIT_VERSION%"
exit /b exit /b
@ -90,7 +89,7 @@ exit /b
:::------------------------------------------------------------------------------- :::-------------------------------------------------------------------------------
:: process a `x.x.x.xxxx.x` formatted string :: process a `x.x.x.xxxx.x` formatted string
%lib_console% debug_output :parse_version "ARGV[1]=%~1, ARGV[2]=%~2" %print_debug% :parse_version "ARGV[1]=%~1, ARGV[2]=%~2"
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
for /F "tokens=1-3* delims=.,-" %%A in ("%2") do ( for /F "tokens=1-3* delims=.,-" %%A in ("%2") do (
@ -130,16 +129,16 @@ exit /b
:::------------------------------------------------------------------------------- :::-------------------------------------------------------------------------------
:: now parse the version information into the corresponding variables :: now parse the version information into the corresponding variables
%lib_console% debug_output :validate_version "ARGV[1]=%~1, ARGV[2]=%~2" %print_debug% :validate_version "ARGV[1]=%~1, ARGV[2]=%~2"
call :parse_version %~1 %~2 call :parse_version %~1 %~2
:: ... and maybe display it, for debugging purposes. :: ... and maybe display it, for debugging purposes.
REM %lib_console% debug_output :validate_version "Found Git Version for %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!" REM %print_debug% :validate_version "Found Git Version for %~1: !%~1_MAJOR!.!%~1_MINOR!.!%~1_PATCH!.!%~1_BUILD!"
if "%~1" == "VENDORED" ( if "%~1" == "VENDORED" (
%lib_console% debug_output :validate_version "Found Git Version for %~1: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD%" %print_debug% :validate_version "Found Git Version for %~1: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD%"
) else ( ) else (
%lib_console% debug_output :validate_version "Found Git Version for %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD%" %print_debug% :validate_version "Found Git Version for %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD%"
) )
exit /b exit /b
@ -164,9 +163,9 @@ exit /b
:: checks all major, minor, patch and build variables for the given arguments. :: 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. :: whichever binary that has the most recent version will be used based on the return code.
%lib_console% debug_output Comparing: %print_debug% Comparing:
%lib_console% debug_output %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD% %print_debug% %~1: %USER_MAJOR%.%USER_MINOR%.%USER_PATCH%.%USER_BUILD%
%lib_console% debug_output %~2: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD% %print_debug% %~2: %VENDORED_MAJOR%.%VENDORED_MINOR%.%VENDORED_PATCH%.%VENDORED_BUILD%
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
if !%~1_MAJOR! GTR !%~2_MAJOR! (endlocal & exit /b 1) if !%~1_MAJOR! GTR !%~2_MAJOR! (endlocal & exit /b 1)
@ -231,31 +230,31 @@ exit /b
:::------------------------------------------------------------------------------- :::-------------------------------------------------------------------------------
:compare_git_versions :compare_git_versions
setlocal enabledelayedexpansion
if ERRORLEVEL 0 ( if ERRORLEVEL 0 (
:: compare the user git version against the vendored version :: compare the user git version against the vendored version
%lib_git% compare_versions USER VENDORED !lib_git! compare_versions USER VENDORED
:: use the user provided git if its version is greater than, or equal to the vendored git :: use the user provided git if its version is greater than, or equal to the vendored git
if ERRORLEVEL 0 ( if ERRORLEVEL 0 (
if exist "%test_dir:~0,-4%\cmd\git.exe" ( if exist "!test_dir:~0,-4!\cmd\git.exe" (
set "GIT_INSTALL_ROOT=%test_dir:~0,-4%" set "GIT_INSTALL_ROOT=!test_dir:~0,-4!"
set test_dir=
) else ( ) else (
set "GIT_INSTALL_ROOT=%test_dir%" set "GIT_INSTALL_ROOT=!test_dir!"
set test_dir=
) )
) else ( ) else (
%lib_console% verbose_output "Found old %GIT_VERSION_USER% in %test_dir%, but not using..." %print_verbose% "Found old !GIT_VERSION_USER! in !test_dir!, but not using..."
set test_dir=
) )
) else ( ) else (
:: compare the user git version against the vendored version :: compare the user git version against the vendored version
:: if the user provided git executable is not found :: if the user provided git executable is not found
IF ERRORLEVEL -255 IF NOT ERRORLEVEL -254 ( IF ERRORLEVEL -255 IF NOT ERRORLEVEL -254 (
%lib_console% verbose_output "No git at "%git_executable%" found." %print_verbose% "No git at "!git_executable!" found."
set test_dir= set test_dir=
) )
) )
endlocal && set "GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%" && set test_dir=
exit /b exit /b
:::=============================================================================== :::===============================================================================
@ -272,7 +271,7 @@ exit /b
:get_user_git_version :get_user_git_version
:: get the version information for the user provided git binary :: get the version information for the user provided git binary
%lib_git% read_version USER "%test_dir%" %lib_git% read_version USER "%test_dir%" 2>nul
%lib_git% validate_version USER %GIT_VERSION_USER% %lib_git% validate_version USER %GIT_VERSION_USER%
exit /b exit /b

View File

@ -42,7 +42,7 @@ exit /b
if "%~1" neq "" ( if "%~1" neq "" (
set "add_path=%~1" set "add_path=%~1"
) else ( ) else (
%lib_console% show_error "You must specify a directory to add to the path!" %print_error% "You must specify a directory to add to the path!"
exit 1 exit 1
) )
@ -77,33 +77,33 @@ exit /b
set OLD_PATH=%PATH% set OLD_PATH=%PATH%
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
if "%found%" == "0" ( if "!found!" == "0" (
echo "%path%"|%WINDIR%\System32\findstr >nul /I /R /C:";%find_query%;" echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!;"
call :set_found call :set_found
) )
%lib_console% debug_output :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 /i "!position!" == "append" (
if "!found!" == "0" ( if "!found!" == "0" (
echo "%path%"|%WINDIR%\System32\findstr >nul /I /R /C:";%find_query%\"$" echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!\"$"
call :set_found call :set_found
) )
%lib_console% debug_output :enhance_path "Env Var END PATH %find_query% - found=!found!" %print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!"
) else ( ) else (
if "!found!" == "0" ( if "!found!" == "0" (
echo "%path%"|%WINDIR%\System32\findstr >nul /I /R /C:"^\"%find_query%;" echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:"^\"!find_query!;"
call :set_found call :set_found
) )
%lib_console% debug_output :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% endlocal & set found=%found%
if "%found%" == "0" ( if "%found%" == "0" (
if /i "%position%" == "append" ( if /i "%position%" == "append" (
%lib_console% debug_output :enhance_path "Appending '%add_to_path%'" %print_debug% :enhance_path "Appending '%add_to_path%'"
set "PATH=%PATH%;%add_to_path%" set "PATH=%PATH%;%add_to_path%"
) else ( ) else (
%lib_console% debug_output :enhance_path "Prepending '%add_to_path%'" %print_debug% :enhance_path "Prepending '%add_to_path%'"
set "PATH=%add_to_path%;%PATH%" set "PATH=%add_to_path%;%PATH%"
) )
@ -112,13 +112,30 @@ exit /b
:end_enhance_path :end_enhance_path
set "PATH=%PATH:;;=;%" set "PATH=%PATH:;;=;%"
if NOT "%OLD_PATH%" == "%PATH%" (
%lib_console% debug_output :enhance_path "END Env Var - PATH=%path%" REM echo %path%|"C:\Users\dgames\cmder - dev\vendor\git-for-windows\usr\bin\wc" -c
%lib_console% debug_output :enhance_path "Env Var %find_query% - found=%found%" if "%fast_init%" == "1" exit /b
)
set "position=" if not "%OLD_PATH:~0,3000%" == "%OLD_PATH:~0,3001%" goto :toolong
if not "%OLD_PATH%" == "%PATH%" goto :changed
exit /b exit /b
:toolong
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
exit /b
:changed
%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 :set_found
if "%ERRORLEVEL%" == "0" ( if "%ERRORLEVEL%" == "0" (
set found=1 set found=1
@ -156,7 +173,7 @@ exit /b
if "%~1" neq "" ( if "%~1" neq "" (
set "add_path=%~1" set "add_path=%~1"
) else ( ) else (
%lib_console% show_error "You must specify a directory to add to the path!" %print_error% "You must specify a directory to add to the path!"
exit 1 exit 1
) )
@ -188,14 +205,14 @@ exit /b
exit /b exit /b
) )
%lib_console% debug_output :enhance_path_recursive "Env Var - add_path=%add_to_path%" %print_debug% :enhance_path_recursive "Env Var - add_path=%add_to_path%"
%lib_console% debug_output :enhance_path_recursive "Env Var - position=%position%" %print_debug% :enhance_path_recursive "Env Var - position=%position%"
%lib_console% debug_output :enhance_path_recursive "Env Var - depth=%depth%" %print_debug% :enhance_path_recursive "Env Var - depth=%depth%"
%lib_console% debug_output :enhance_path_recursive "Env Var - max_depth=%max_depth%" %print_debug% :enhance_path_recursive "Env Var - max_depth=%max_depth%"
if %max_depth% gtr %depth% ( if %max_depth% gtr %depth% (
if "%add_to_path%" neq "" ( if "%add_to_path%" neq "" (
%lib_console% debug_output :enhance_path_recursive "Adding parent directory - '%add_to_path%'" %print_debug% :enhance_path_recursive "Adding parent directory - '%add_to_path%'"
call :enhance_path "%add_to_path%" %position% call :enhance_path "%add_to_path%" %position%
) )
call :set_depth call :set_depth
@ -216,10 +233,10 @@ exit /b
) )
for /d %%i in ("%add_path%\*") do ( for /d %%i in ("%add_path%\*") do (
%lib_console% debug_output :enhance_path_recursive "Env Var BEFORE - depth=%depth%" %print_debug% :enhance_path_recursive "Env Var BEFORE - depth=%depth%"
%lib_console% debug_output :enhance_path_recursive "Found Subdirectory - '%%~fi'" %print_debug% :enhance_path_recursive "Found Subdirectory - '%%~fi'"
call :enhance_path_recursive "%%~fi" %depth% %max_depth% %position% call :enhance_path_recursive "%%~fi" %depth% %max_depth% %position%
%lib_console% debug_output :enhance_path_recursive "Env Var AFTER- depth=%depth%" %print_debug% :enhance_path_recursive "Env Var AFTER- depth=%depth%"
) )
exit /b exit /b

View File

@ -38,7 +38,7 @@ exit /b
pushd "%~1" pushd "%~1"
for /f "usebackq" %%x in ( `dir /b *.bat *.cmd 2^>nul` ) do ( for /f "usebackq" %%x in ( `dir /b *.bat *.cmd 2^>nul` ) do (
%lib_console% verbose_output "Calling '%~1\%%x'..." %print_verbose% "Calling '%~1\%%x'..."
call "%~1\%%x" call "%~1\%%x"
) )
popd popd

2
vendor/profile.ps1 vendored
View File

@ -1,4 +1,4 @@
# Init Script for PowerShell # Init Script for PowerShell
# Created as part of cmder project # Created as part of cmder project
# !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED # !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED

16
vendor/sources.json vendored
View File

@ -1,22 +1,22 @@
[ [
{ {
"name": "git-for-windows", "name": "git-for-windows",
"version": "v2.28.0.windows.1", "version": "v2.29.1.windows.1",
"url": "https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/PortableGit-2.28.0-64-bit.7z.exe" "url": "https://github.com/git-for-windows/git/releases/download/v2.29.1.windows.1/PortableGit-2.29.1-64-bit.7z.exe"
}, },
{ {
"name": "clink", "name": "clink",
"version": "0.4.9", "version": "1.1.45",
"url": "https://github.com/mridgers/clink/releases/download/0.4.9/clink_0.4.9.zip" "url": "https://github.com/chrisant996/clink/releases/download/v1.1.45/clink.1.1.45.1c3985.zip"
}, },
{ {
"name": "conemu-maximus5", "name": "conemu-maximus5",
"version": "191012", "version": "210304",
"url": "https://github.com/Maximus5/ConEmu/releases/download/v19.10.12/ConEmuPack.191012.7z" "url": "https://github.com/Maximus5/ConEmu/releases/download/v21.03.04/ConEmuPack.210304.7z"
}, },
{ {
"name": "clink-completions", "name": "clink-completions",
"version": "0.3.5", "version": "0.3.6",
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.3.5.zip" "url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.3.6.zip"
} }
] ]

View File

@ -9,7 +9,6 @@ gl=git log --oneline --all --graph --decorate $*
ls=ls --show-control-chars -F --color $* ls=ls --show-control-chars -F --color $*
pwd=cd pwd=cd
clear=cls clear=cls
history=cat -n "%CMDER_ROOT%\config\.history"
unalias=alias /d $1 unalias=alias /d $1
vi=vim $* vi=vim $*
cmderr=cd /d "%CMDER_ROOT%" cmderr=cd /d "%CMDER_ROOT%"