CLink migration and clenaup

This commit is contained in:
dgames 2020-12-24 17:48:00 -05:00
parent c4fb7e6034
commit 783cf68d10
3 changed files with 77 additions and 117 deletions

View File

@ -1,9 +1,18 @@
# Change Log # Change Log
## [1.3.17](https://github.com/cmderdev/cmder/tree/v1.3.17) (2020-12-23) ## [1.3.18](https://github.com/cmderdev/cmder/tree/v1.3.18) (2020-12-24)
### Fixes ### Fixes
- Update to Clink v1.1.14 to fix #2451.
- Clink `%cmder_root%\config\settings` is migrated from a previous install if `%cmder_root%\config\clink_settings` does not exist.
- This is a best effort migration of Clink 1.x.x supported settings.
- Clink `%cmder_root%\config\.history` is migrated from a previous install if `%cmder_root%\config\clink_history` does not exist.
- `init.bat` auto migrates the history alias to use `clink history` if required.
## [1.3.17](https://github.com/cmderdev/cmder/tree/v1.3.17) (2020-12-23)
### Fixes
- [bug] Running `alias ..=cd ..` removes other aliases #2394 - [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. - 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.` - Fix `\Git\cmd\git.exe found. was unexpected at this time.`

View File

@ -1,116 +1,39 @@
# 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 # name: Shell command completions
# type: bool # type: color
# Clink clears the current line when Esc is pressed (unless Readline's Vi mode color.cmd = bold
# is enabled).
esc_clears_line = 1
# name: Match display colour # name: Doskey completions
# type: int # type: color
# Colour to use when displaying matches. A value less than 0 will be the color.doskey = bright cyan
# opposite brightness of the default colour.
match_colour = -1
# name: Executable match style # name: Filtered completion color
# type: enum # type: color
# 0 = PATH only color.filtered = bold
# 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 # name: For user-interaction prompts
# type: bool # type: color
# If the line begins with whitespace then Clink bypasses executable matching and color.interact = bold
# will match all files and directories instead.
space_prefix_match_files = 1
# name: Colour of the prompt # name: Message area color
# type: int # type: color
# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled color.message = default
# 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

50
vendor/init.bat vendored
View File

@ -148,18 +148,39 @@ if "%CMDER_CLINK%" == "1" (
:: 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%\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 (
@ -345,6 +366,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
@ -397,11 +425,11 @@ if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMD
echo * Search for 'user-aliases' and replace it with 'user_aliases'. echo * Search for 'user-aliases' and replace it with 'user_aliases'.
) )
alias history |find /i "cat" >nul :: alias history |find /i "cat" >nul
if "%ERRORLEVEL%" == "0" ( :: if "%ERRORLEVEL%" == "0" (
echo Migrating alias 'history' to new Clink 1.x.x... :: echo Migrating alias 'history' to new Clink 1.x.x...
"%CMDER_ROOT%\vendor\bin\alias.cmd" history="^%%CMDER_ROOT^%%\vendor\clink\clink.bat" history :: "%CMDER_ROOT%\vendor\bin\alias.cmd" history="^%%CMDER_ROOT^%%\vendor\clink\clink.bat" history
) :: )
set initialConfig= set initialConfig=