mirror of
https://github.com/cmderdev/cmder.git
synced 2025-03-13 14:14:37 +08:00
Compare commits
77 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
126347025f | ||
|
7ceacb63dd | ||
|
510178852d | ||
|
4d15730d05 | ||
|
25ccfeed77 | ||
|
42315d8cec | ||
|
c6dbb89129 | ||
|
1cfba25beb | ||
|
2007baef6e | ||
|
e220d114b2 | ||
|
4204faa063 | ||
|
540532f126 | ||
|
28f6098d48 | ||
|
b56a6d43cb | ||
|
d2f7136ef8 | ||
|
4daff054eb | ||
|
45fd0c2666 | ||
|
5145a15139 | ||
|
92419a48fc | ||
|
c9b77f618a | ||
|
a2e4884ea1 | ||
|
62a46140eb | ||
|
ae518cded8 | ||
|
4ad76d8274 | ||
|
8a199bf47b | ||
|
457d99da0b | ||
|
52762636dc | ||
|
ed6c9b2bc9 | ||
|
7753622897 | ||
|
18950135ef | ||
|
b59647b570 | ||
|
2135fce19f | ||
|
219c879582 | ||
|
289bcf03a5 | ||
|
50bc05fee7 | ||
|
8d916a4446 | ||
|
5e22496aca | ||
|
8b6add75cf | ||
|
8498447878 | ||
|
0874f4be44 | ||
|
ffb93b1804 | ||
|
092dc4d323 | ||
|
39afad1743 | ||
|
d0cb6b5c23 | ||
|
9ee2bef7cd | ||
|
a409a1cce8 | ||
|
3b8e87de84 | ||
|
faf66542b4 | ||
|
d3497f5eb0 | ||
|
98a1e9621e | ||
|
4f32d23c30 | ||
|
ad5c80bcd2 | ||
|
9a135947af | ||
|
1b9a1e5b6f | ||
|
1adaab963b | ||
|
29650960aa | ||
|
41f0454b05 | ||
|
3ea9728ffd | ||
|
a01fb4c444 | ||
|
4b0344172a | ||
|
4104a5612f | ||
|
5e219fe34e | ||
|
ff7621c1da | ||
|
5d4c45d099 | ||
|
f517494dc4 | ||
|
84ee96c64f | ||
|
ad804eda44 | ||
|
15addb87ee | ||
|
47258fbd2b | ||
|
37c41e80df | ||
|
5a90558714 | ||
|
c1f8dfdb27 | ||
|
50c3ea4ab3 | ||
|
3f53d1b927 | ||
|
6180aa53b3 | ||
|
5e3b70338d | ||
|
a4ea326a62 |
2
.github/workflows/branches.yml
vendored
2
.github/workflows/branches.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # fetch all history for all branches and tags
|
||||
|
||||
|
20
.github/workflows/build.yml
vendored
20
.github/workflows/build.yml
vendored
@ -11,7 +11,7 @@ on:
|
||||
tags:
|
||||
- "v*"
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
branches: [ "master", "development" ]
|
||||
|
||||
#---------------------------------#
|
||||
# environment configuration #
|
||||
@ -30,15 +30,17 @@ jobs:
|
||||
build:
|
||||
name: Build Project
|
||||
runs-on: windows-latest
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
discussions: write
|
||||
steps:
|
||||
- name: Check out repository code (Action from GitHub)
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Add MSBuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
|
||||
- name: Build Cmder Launcher
|
||||
shell: pwsh
|
||||
@ -51,32 +53,32 @@ jobs:
|
||||
run: .\pack.ps1 -verbose
|
||||
|
||||
- name: Upload artifact (cmder.zip)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: build/cmder.zip
|
||||
name: cmder.zip
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload artifact (cmder.7z)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: build/cmder.7z
|
||||
name: cmder.7z
|
||||
|
||||
- name: Upload artifact (cmder_mini.zip)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: build/cmder_mini.zip
|
||||
name: cmder_mini.zip
|
||||
|
||||
- name: Upload artifact (hashes.txt)
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: build/hashes.txt
|
||||
name: hashes.txt
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
build/cmder.zip
|
||||
|
29
.github/workflows/codeql.yml
vendored
29
.github/workflows/codeql.yml
vendored
@ -3,20 +3,25 @@
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
branches: [ "master", "development" ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- '.github/**'
|
||||
- '**/.gitignore'
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ "master" ]
|
||||
branches: [ "master", "development" ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- '.github/**'
|
||||
- '**/.gitignore'
|
||||
schedule:
|
||||
- cron: '30 19 * * 0'
|
||||
|
||||
@ -40,11 +45,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@ -55,7 +60,7 @@ jobs:
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
- name: Add MSBuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
|
||||
- name: Build Cmder Launcher
|
||||
shell: pwsh
|
||||
@ -63,6 +68,6 @@ jobs:
|
||||
run: .\build.ps1 -Compile -verbose
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
14
.github/workflows/tests.yml
vendored
14
.github/workflows/tests.yml
vendored
@ -4,9 +4,21 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- development
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- '.github/**'
|
||||
- '**/.gitignore'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- development
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.txt'
|
||||
- '.github/**'
|
||||
- '**/.gitignore'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
@ -26,7 +38,7 @@ jobs:
|
||||
continue-on-error: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Initialize vendors
|
||||
shell: pwsh
|
||||
working-directory: scripts
|
||||
|
4
.github/workflows/vendor.yml
vendored
4
.github/workflows/vendor.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@ -51,7 +51,7 @@ jobs:
|
||||
Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ')
|
||||
echo "UPDATE_MESSAGE<<<EOF`n$updateMessage`n<EOF" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
- uses: peter-evans/create-pull-request@v6
|
||||
if: env.COUNT_UPDATED > 0
|
||||
with:
|
||||
title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies'
|
||||
|
24
SECURITY.md
Normal file
24
SECURITY.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 1.3.x | :white_check_mark: |
|
||||
| < 1.3 | ❎ |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you discover a security issue in our project, please report it to [MartiUK](https://github.com/MartiUK). We will acknowledge your email within 24 hours and provide a more detailed response within 48 hours. We will try to fix the issue as soon as possible and inform you when a new version is released.
|
||||
|
||||
Please include as much of the information listed below as you can to help us better understand and resolve the issue:
|
||||
|
||||
- The nature of the issue
|
||||
- The affected source file(s) with full paths
|
||||
- The location of the vulnerable code (tag/branch/commit or direct URL)
|
||||
- Any special configuration needed to reproduce the issue
|
||||
- Detailed steps to reproduce the issue
|
||||
- Proof-of-concept or exploit code (if possible)
|
||||
- The impact of the issue, including how an attacker could exploit it
|
||||
|
||||
Please do not disclose the vulnerability publicly until we have resolved it.
|
@ -469,9 +469,6 @@ void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstr
|
||||
MessageBox(NULL, _T("Unable to create the ConEmu process!"), _T("Error"), MB_OK);
|
||||
return;
|
||||
}
|
||||
|
||||
LRESULT lr = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment", SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG, 5000, NULL);
|
||||
lr = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)L"Environment", SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG, 5000, NULL); // For Windows >= 8
|
||||
}
|
||||
|
||||
bool IsUserOnly(std::wstring opt)
|
||||
|
@ -1,9 +1,8 @@
|
||||
|
||||
/**
|
||||
* WARNING: do NOT modify this file! the content of this file should be
|
||||
* automatically genereted before AppVeyor builds using the
|
||||
* respective .ps1 Powershell scripts.
|
||||
*
|
||||
* WARNING: This file should NOT be manually modified!
|
||||
* The contents will be automatically generated using the `.ps1` PowerShell scripts,
|
||||
* during builds by the CI.
|
||||
*/
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -79,7 +79,7 @@ if ($Compile) {
|
||||
|
||||
Write-Verbose "Building the launcher..."
|
||||
|
||||
# Referene: https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
||||
# Reference: https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
||||
msbuild CmderLauncher.vcxproj /t:Clean,Build /p:configuration=Release /m
|
||||
|
||||
if ($LastExitCode -ne 0) {
|
||||
|
2
vendor/bin/cmder_shell.cmd
vendored
2
vendor/bin/cmder_shell.cmd
vendored
@ -9,5 +9,5 @@ if "%cmder_init%" == "1" (
|
||||
)
|
||||
|
||||
pushd "%CMDER_ROOT%"
|
||||
call "%CMDER_ROOT%\vendor\init.bat" /f
|
||||
call "%CMDER_ROOT%\vendor\init.bat" /f %*
|
||||
popd
|
||||
|
14
vendor/bin/excd.cmd
vendored
14
vendor/bin/excd.cmd
vendored
@ -1,6 +1,8 @@
|
||||
@if "%~1"=="/?" (@cd %*)
|
||||
@set excd=%*
|
||||
@set excd=%excd:"=%
|
||||
@if "%excd:~0,1%"=="~" (@set excd=%userprofile%\%excd:~1%)
|
||||
@if not "%~1"=="/d" (@set excd_param="/d") else (@set excd_param=)
|
||||
@cd %excd_param% "%excd%"
|
||||
@echo off
|
||||
set excd=%*
|
||||
set excd=%excd:"=%
|
||||
set excd_param=/d
|
||||
if /i "%excd:~0,2%"=="/d" set "excd=%excd:~2%"
|
||||
if "%excd:~0,1%"=="~" (set excd=%userprofile%\%excd:~1%)
|
||||
if "%excd:~0,1%"=="/" (set excd_param=)
|
||||
cd %excd_param% %excd%
|
||||
|
58
vendor/clink.lua
vendored
58
vendor/clink.lua
vendored
@ -51,11 +51,37 @@ local function get_unknown_color()
|
||||
end
|
||||
|
||||
---
|
||||
-- Makes a string safe to use as the replacement in string.gsub
|
||||
-- Escapes special characters in a string.gsub `find` parameter, so that it
|
||||
-- can be matched as a literal plain text string, i.e. disable Lua pattern
|
||||
-- matching. See "Patterns" (https://www.lua.org/manual/5.2/manual.html#6.4.1).
|
||||
-- @param {string} text Text to escape
|
||||
-- @returns {string} Escaped text
|
||||
---
|
||||
local function verbatim(s)
|
||||
s = string.gsub(s, "%%", "%%%%")
|
||||
return s
|
||||
local function escape_gsub_find_arg(text)
|
||||
return text and text:gsub("([-+*?.%%()%[%]$^])", "%%%1") or ""
|
||||
end
|
||||
|
||||
---
|
||||
-- Escapes special characters in a string.gsub `replace` parameter, so that it
|
||||
-- can be replaced as a literal plain text string, i.e. disable Lua pattern
|
||||
-- matching. See "Patterns" (https://www.lua.org/manual/5.2/manual.html#6.4.1).
|
||||
-- @param {string} text Text to escape
|
||||
-- @returns {string} Escaped text
|
||||
---
|
||||
local function escape_gsub_replace_arg(text)
|
||||
return text and text:gsub("%%", "%%%%") or ""
|
||||
end
|
||||
|
||||
---
|
||||
-- Perform string.sub, but disable Lua pattern matching and just treat both
|
||||
-- the `find` and `replace` parameters as a literal plain text replacement.
|
||||
-- @param {string} str Text in which to perform find and replace
|
||||
-- @param {string} find Text to find (plain text; not a Lua pattern)
|
||||
-- @param {string} replace Replacement text (plain text; not a Lua pattern)
|
||||
-- @returns {string} Copy of the input `str` with `find` replaced by `replace`
|
||||
---
|
||||
local function gsub_plain(str, find, replace)
|
||||
return string.gsub(str, escape_gsub_find_arg(find), escape_gsub_replace_arg(replace))
|
||||
end
|
||||
|
||||
-- Extracts only the folder name from the input Path
|
||||
@ -153,7 +179,7 @@ local function set_prompt_filter()
|
||||
end
|
||||
|
||||
if prompt_useHomeSymbol and string.find(cwd, clink.get_env("HOME")) then
|
||||
cwd = string.gsub(cwd, clink.get_env("HOME"), prompt_homeSymbol)
|
||||
cwd = gsub_plain(cwd, clink.get_env("HOME"), prompt_homeSymbol)
|
||||
end
|
||||
|
||||
local uah = ''
|
||||
@ -176,14 +202,14 @@ local function set_prompt_filter()
|
||||
local version_control = prompt_includeVersionControl and "{git}{hg}{svn}" or ""
|
||||
|
||||
local prompt = "{uah}{cwd}" .. version_control .. cr .. get_lamb_color() .. "{env}{lamb}\x1b[0m "
|
||||
prompt = string.gsub(prompt, "{uah}", uah)
|
||||
prompt = string.gsub(prompt, "{cwd}", cwd)
|
||||
prompt = string.gsub(prompt, "{env}", env)
|
||||
clink.prompt.value = string.gsub(prompt, "{lamb}", prompt_lambSymbol)
|
||||
prompt = gsub_plain(prompt, "{uah}", uah)
|
||||
prompt = gsub_plain(prompt, "{cwd}", cwd)
|
||||
prompt = gsub_plain(prompt, "{env}", env)
|
||||
clink.prompt.value = gsub_plain(prompt, "{lamb}", prompt_lambSymbol)
|
||||
end
|
||||
|
||||
local function percent_prompt_filter()
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{percent}", "%%")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{percent}", "%")
|
||||
end
|
||||
|
||||
---
|
||||
@ -532,13 +558,13 @@ local function git_prompt_filter()
|
||||
color = colors.conflict
|
||||
end
|
||||
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", " "..color.."("..verbatim(branch)..")")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{git}", " "..color.."("..branch..")")
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- No git present or not in git file
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", "")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{git}", "")
|
||||
return false
|
||||
end
|
||||
|
||||
@ -577,13 +603,13 @@ local function hg_prompt_filter()
|
||||
end
|
||||
|
||||
local result = color .. "(" .. branch .. ")"
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", " "..verbatim(result))
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{hg}", " "..result)
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- No hg present or not in hg repo
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", "")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{hg}", "")
|
||||
end
|
||||
|
||||
local function svn_prompt_filter()
|
||||
@ -636,13 +662,13 @@ local function svn_prompt_filter()
|
||||
color = colors.dirty
|
||||
end
|
||||
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{svn}", " "..color.."("..verbatim(branch)..")")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{svn}", " "..color.."("..branch..")")
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- No svn present or not in svn file
|
||||
clink.prompt.value = string.gsub(clink.prompt.value, "{svn}", "")
|
||||
clink.prompt.value = gsub_plain(clink.prompt.value, "{svn}", "")
|
||||
return false
|
||||
end
|
||||
|
||||
|
4
vendor/clink_settings.default
vendored
4
vendor/clink_settings.default
vendored
@ -1,6 +1,10 @@
|
||||
# For explanation of these and other settings see:
|
||||
# https://chrisant996.github.io/clink/clink.html
|
||||
|
||||
# name: Expand envvars when completing
|
||||
# type: boolean
|
||||
match.expand_envvars = True
|
||||
|
||||
# name: Sets how command history expansion is applied
|
||||
# type: enum
|
||||
# options: off,on,not_squoted,not_dquoted,not_quoted
|
||||
|
2
vendor/init.bat
vendored
2
vendor/init.bat
vendored
@ -426,7 +426,7 @@ if "%CMDER_ALIASES%" == "1" (
|
||||
)
|
||||
|
||||
:: Add aliases to the environment
|
||||
type "%user_aliases%" | findstr /b /l /i "history=cat " >nul
|
||||
type "%user_aliases%" | %WINDIR%\System32\findstr /b /l /i "history=cat " >nul
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
echo Migrating alias 'history' to new Clink 1.x.x...
|
||||
call "%CMDER_ROOT%\vendor\bin\alias.cmd" /d history
|
||||
|
64
vendor/lib/lib_base.cmd
vendored
64
vendor/lib/lib_base.cmd
vendored
@ -10,9 +10,8 @@ if "%~1" == "/h" (
|
||||
|
||||
exit /b
|
||||
|
||||
:help
|
||||
:::===============================================================================
|
||||
:::show_subs - shows all sub routines in a .bat/.cmd file with documentation
|
||||
:::help - shows all sub routines in a .bat/.cmd file with documentation
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -20,16 +19,15 @@ exit /b
|
||||
:::.
|
||||
:::usage:
|
||||
:::.
|
||||
::: %lib_base% show_subs "file"
|
||||
::: %lib_base% help "file"
|
||||
:::.
|
||||
:::options:
|
||||
:::.
|
||||
::: file <in> full path to file containing lib_routines to display
|
||||
:::.
|
||||
:::-------------------------------------------------------------------------------
|
||||
for /f "tokens=* delims=:" %%a in ('type "%~1" ^| %WINDIR%\System32\findstr /i /r "^:::"') do (
|
||||
rem echo a="%%a"
|
||||
|
||||
:help
|
||||
for /f "tokens=* delims=:" %%a in ('%WINDIR%\System32\findstr /i /r "^:::" "%~1"') do (
|
||||
if "%%a"=="." (
|
||||
echo.
|
||||
) else if /i "%%a" == "usage" (
|
||||
@ -44,9 +42,13 @@ exit /b
|
||||
pause
|
||||
exit /b
|
||||
|
||||
:cmder_shell
|
||||
:::===============================================================================
|
||||
:::show_subs - shows all sub routines in a .bat/.cmd file with documentation
|
||||
:::cmder_shell - Initializes the Cmder shell environment variables
|
||||
:::.
|
||||
:::description:
|
||||
:::.
|
||||
::: This routine sets up the Cmder shell environment by detecting the
|
||||
::: command shell and initializing related variables.
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -55,15 +57,30 @@ exit /b
|
||||
:::usage:
|
||||
:::.
|
||||
::: %lib_base% cmder_shell
|
||||
:::.
|
||||
:::options:
|
||||
:::.
|
||||
::: file <in> full path to file containing lib_routines to display
|
||||
:::.
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:cmder_shell
|
||||
call :detect_comspec %ComSpec%
|
||||
exit /b
|
||||
|
||||
:::===============================================================================
|
||||
:::detect_comspec - Detects the command shell being used:::
|
||||
:::.
|
||||
:::description:
|
||||
:::.
|
||||
::: This function sets the CMDER_SHELL variable to the name of the
|
||||
::: detected command shell. It also initializes the CMDER_CLINK and
|
||||
::: CMDER_ALIASES variables if they are not already defined.
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
::: call "lib_base.cmd"
|
||||
:::.
|
||||
:::usage:
|
||||
:::.
|
||||
::: %lib_base% detect_comspec %ComSpec%
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:detect_comspec
|
||||
set CMDER_SHELL=%~n1
|
||||
if not defined CMDER_CLINK (
|
||||
@ -74,6 +91,27 @@ exit /b
|
||||
)
|
||||
exit /b
|
||||
|
||||
:::===============================================================================
|
||||
:::update_legacy_aliases - Updates the legacy alias definitions in the user_aliases file
|
||||
:::.
|
||||
:::description:
|
||||
:::.
|
||||
::: This function checks if the user_aliases file contains the marker
|
||||
::: ";= Add aliases below here". If the marker is not found, it creates
|
||||
::: an initial user_aliases store by copying the default user_aliases file
|
||||
::: from the CMDER_ROOT directory. If the CMDER_USER_CONFIG environment
|
||||
::: variable is defined, it creates a backup of the existing user_aliases
|
||||
::: file before copying the default file.
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
::: call "lib_base.cmd"
|
||||
:::.
|
||||
:::usage:
|
||||
:::.
|
||||
::: %lib_base% update_legacy_aliases
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:update_legacy_aliases
|
||||
type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul
|
||||
if "%errorlevel%" == "1" (
|
||||
|
31
vendor/lib/lib_git.cmd
vendored
31
vendor/lib/lib_git.cmd
vendored
@ -12,7 +12,6 @@ if "%~1" == "/h" (
|
||||
|
||||
exit /b
|
||||
|
||||
:read_version
|
||||
:::===============================================================================
|
||||
:::read_version - Get the git.exe version
|
||||
:::.
|
||||
@ -34,6 +33,7 @@ exit /b
|
||||
::: GIT_VERSION_[GIT SCOPE] <out> Env variable containing Git semantic version string
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:read_version
|
||||
:: clear the variables
|
||||
set GIT_VERSION_%~1=
|
||||
|
||||
@ -55,6 +55,7 @@ exit /b
|
||||
set "GIT_VERSION=%%C"
|
||||
) else (
|
||||
echo "'git --version' returned an improper version string!"
|
||||
%print_debug% :read_version "returned string: '%%A %%B %%C' by executable path: %git_executable%"
|
||||
pause
|
||||
exit /b
|
||||
)
|
||||
@ -63,7 +64,6 @@ exit /b
|
||||
|
||||
exit /b
|
||||
|
||||
:parse_version
|
||||
:::===============================================================================
|
||||
:::parse_version - Parse semantic version string 'x.x.x.x' and return the pieces
|
||||
:::.
|
||||
@ -88,6 +88,7 @@ exit /b
|
||||
::: [SCOPE]_BUILD <out> Scoped Build version.
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:parse_version
|
||||
:: process a `x.x.x.xxxx.x` formatted string
|
||||
%print_debug% :parse_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
||||
|
||||
@ -110,9 +111,8 @@ exit /b
|
||||
|
||||
:endlocal_set_git_version
|
||||
|
||||
:validate_version
|
||||
:::===============================================================================
|
||||
:::validate_version - Validate semantic version string 'x.x.x.x'.
|
||||
:::validate_version - Validate semantic version string 'x.x.x.x'
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -128,6 +128,7 @@ exit /b
|
||||
::: [VERSION] <in> Semantic version String. Ex: 1.2.3.4
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:validate_version
|
||||
:: now parse the version information into the corresponding variables
|
||||
%print_debug% :validate_version "ARGV[1]=%~1, ARGV[2]=%~2"
|
||||
|
||||
@ -142,9 +143,8 @@ exit /b
|
||||
)
|
||||
exit /b
|
||||
|
||||
:compare_versions
|
||||
:::===============================================================================
|
||||
:::compare_version - Compare semantic versions return latest version.
|
||||
:::compare_version - Compare semantic versions and return latest version
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -160,6 +160,7 @@ exit /b
|
||||
::: [SCOPE2] <in> Example: VENDOR
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:compare_versions
|
||||
:: checks all major, minor, patch and build variables for the given arguments.
|
||||
:: whichever binary that has the most recent version will be used based on the return code.
|
||||
|
||||
@ -184,7 +185,12 @@ exit /b
|
||||
endlocal & exit /b 0
|
||||
|
||||
:::===============================================================================
|
||||
:::is_git_shim
|
||||
:::is_git_shim - Check if the directory has a git.shim file
|
||||
:::.
|
||||
:::description:
|
||||
:::.
|
||||
::: Shim is a small helper program for Scoop that calls the executable configured in git.shim file
|
||||
::: See: github.com/ScoopInstaller/Shim and github.com/cmderdev/cmder/pull/1905
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -201,7 +207,7 @@ exit /b
|
||||
|
||||
:is_git_shim
|
||||
pushd "%~1"
|
||||
:: check if there's shim - and if yes follow the path
|
||||
:: check if there is a shim file - if yes, read the actual executable path
|
||||
setlocal enabledelayedexpansion
|
||||
if exist git.shim (
|
||||
for /F "tokens=2 delims== " %%I in (git.shim) do (
|
||||
@ -218,7 +224,7 @@ exit /b
|
||||
exit /b
|
||||
|
||||
:::===============================================================================
|
||||
:::compare_git_versions
|
||||
:::compare_git_versions - Compare the user git version against the vendored version
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -252,7 +258,7 @@ exit /b
|
||||
:: if the user provided git executable is not found
|
||||
IF ERRORLEVEL -255 IF NOT ERRORLEVEL -254 (
|
||||
:: if not exist "%git_executable%" (
|
||||
%print_debug% ":compare_git_versions" "No git at "%git_executable%" found."
|
||||
%print_debug% ":compare_git_versions" "No git at '%git_executable%' found."
|
||||
set test_dir=
|
||||
)
|
||||
)
|
||||
@ -261,7 +267,7 @@ exit /b
|
||||
exit /b
|
||||
|
||||
:::===============================================================================
|
||||
:::get_user_git_version - get the version information for the user provided git binary
|
||||
:::get_user_git_version - Get the version information for the user provided git binary
|
||||
:::.
|
||||
:::include:
|
||||
:::.
|
||||
@ -277,5 +283,4 @@ exit /b
|
||||
%lib_git% read_version USER "%test_dir%" 2>nul
|
||||
%print_debug% ":get_user_git_version" "get_user_git_version GIT_VERSION_USER: %GIT_VERSION_USER%"
|
||||
%lib_git% validate_version USER %GIT_VERSION_USER%
|
||||
exit /b
|
||||
|
||||
exit /b
|
||||
|
42
vendor/lib/lib_path.cmd
vendored
42
vendor/lib/lib_path.cmd
vendored
@ -1,6 +1,5 @@
|
||||
@echo off
|
||||
|
||||
|
||||
call "%~dp0lib_base.cmd"
|
||||
call "%%~dp0lib_console"
|
||||
set lib_path=call "%~dp0lib_path.cmd"
|
||||
@ -11,6 +10,13 @@ if "%~1" == "/h" (
|
||||
call :%*
|
||||
)
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
if not defined find_pathext (
|
||||
set "find_pathext=!PATHEXT:;= !"
|
||||
set "find_pathext=!find_pathext:.=\.!"
|
||||
)
|
||||
endlocal & set "find_pathext=%find_pathext%"
|
||||
|
||||
exit /b
|
||||
|
||||
:enhance_path
|
||||
@ -32,13 +38,12 @@ exit /b
|
||||
:::options:
|
||||
:::
|
||||
::: append <in> Append to the path env variable rather than pre-pend.
|
||||
::B
|
||||
:::
|
||||
:::
|
||||
:::output:
|
||||
:::
|
||||
::: path <out> Sets the path env variable if required.
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
if "%~1" neq "" (
|
||||
set "add_path=%~1"
|
||||
) else (
|
||||
@ -52,7 +57,8 @@ exit /b
|
||||
set "position="
|
||||
)
|
||||
|
||||
dir "%add_path%" | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL
|
||||
dir "%add_path%" 2>NUL | findstr -i -e "%find_pathext%" >NUL
|
||||
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
set "add_to_path=%add_path%"
|
||||
) else (
|
||||
@ -81,20 +87,20 @@ exit /b
|
||||
echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!;"
|
||||
call :set_found
|
||||
)
|
||||
%print_debug% :enhance_path "Env Var INSIDE PATH !find_query! - found=!found!"
|
||||
%print_debug% :enhance_path "Env Var INSIDE PATH !find_query! - found=!found!"
|
||||
|
||||
if /i "!position!" == "append" (
|
||||
if "!found!" == "0" (
|
||||
echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:";!find_query!\"$"
|
||||
call :set_found
|
||||
)
|
||||
%print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!"
|
||||
%print_debug% :enhance_path "Env Var END PATH !find_query! - found=!found!"
|
||||
) else (
|
||||
if "!found!" == "0" (
|
||||
echo "!path!"|!WINDIR!\System32\findstr >nul /I /R /C:"^\"!find_query!;"
|
||||
call :set_found
|
||||
)
|
||||
%print_debug% :enhance_path "Env Var BEGIN PATH !find_query! - found=!found!"
|
||||
%print_debug% :enhance_path "Env Var BEGIN PATH !find_query! - found=!found!"
|
||||
)
|
||||
endlocal & set found=%found%
|
||||
|
||||
@ -129,13 +135,12 @@ exit /b
|
||||
exit /b
|
||||
|
||||
:changed
|
||||
%print_debug% :enhance_path "END Env Var - PATH=%path%"
|
||||
%print_debug% :enhance_path "Env Var %find_query% - found=%found%"
|
||||
%print_debug% :enhance_path "END Env Var - PATH=%path%"
|
||||
%print_debug% :enhance_path "Env Var %find_query% - found=%found%"
|
||||
exit /b
|
||||
|
||||
exit /b
|
||||
|
||||
|
||||
:set_found
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
set found=1
|
||||
@ -186,7 +191,7 @@ exit /b
|
||||
set "position="
|
||||
)
|
||||
|
||||
dir "%add_path%" 2>NUL | findstr -i "\.COM \.EXE \.BAT \.CMD \.PS1 \.VBS" >NUL
|
||||
dir "%add_path%" 2>NUL | findstr -i -e "%find_pathext%" >NUL
|
||||
|
||||
if "%ERRORLEVEL%" == "0" (
|
||||
set "add_to_path=%add_path%"
|
||||
@ -205,10 +210,10 @@ exit /b
|
||||
exit /b
|
||||
)
|
||||
|
||||
%print_debug% :enhance_path_recursive "Env Var - add_path=%add_to_path%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - position=%position%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - depth=%depth%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - max_depth=%max_depth%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - add_path=%add_to_path%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - position=%position%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - depth=%depth%"
|
||||
%print_debug% :enhance_path_recursive "Env Var - max_depth=%max_depth%"
|
||||
|
||||
if %max_depth% gtr %depth% (
|
||||
if "%add_to_path%" neq "" (
|
||||
@ -223,7 +228,7 @@ exit /b
|
||||
|
||||
exit /b
|
||||
|
||||
: set_depth
|
||||
:set_depth
|
||||
set /a "depth=%depth%+1"
|
||||
exit /b
|
||||
|
||||
@ -233,10 +238,9 @@ exit /b
|
||||
)
|
||||
|
||||
for /d %%i in ("%add_path%\*") do (
|
||||
%print_debug% :enhance_path_recursive "Env Var BEFORE - depth=%depth%"
|
||||
%print_debug% :enhance_path_recursive "Env Var BEFORE - depth=%depth%"
|
||||
%print_debug% :enhance_path_recursive "Found Subdirectory - '%%~fi'"
|
||||
call :enhance_path_recursive "%%~fi" %depth% %max_depth% %position%
|
||||
%print_debug% :enhance_path_recursive "Env Var AFTER- depth=%depth%"
|
||||
%print_debug% :enhance_path_recursive "Env Var AFTER- depth=%depth%"
|
||||
)
|
||||
exit /b
|
||||
|
||||
|
19
vendor/lib/lib_profile.cmd
vendored
19
vendor/lib/lib_profile.cmd
vendored
@ -12,26 +12,26 @@ if "%~1" == "/h" (
|
||||
|
||||
exit /b
|
||||
|
||||
:run_profile_d
|
||||
:::===============================================================================
|
||||
:::run_profile_d - Run all scripts in the passed dir path
|
||||
:::
|
||||
:::run_profile_d - Run all scripts in the passed directory path
|
||||
:::.
|
||||
:::include:
|
||||
:::
|
||||
:::.
|
||||
::: call "lib_profile.cmd"
|
||||
:::
|
||||
:::.
|
||||
:::usage:
|
||||
:::
|
||||
:::.
|
||||
::: %lib_profile% "[dir_path]"
|
||||
:::
|
||||
:::.
|
||||
:::required:
|
||||
:::
|
||||
:::.
|
||||
::: [dir_path] <in> Fully qualified directory path containing init *.cmd|*.bat.
|
||||
::: Example: "c:\bin"
|
||||
:::
|
||||
:::.
|
||||
::: path <out> Sets the path env variable if required.
|
||||
:::-------------------------------------------------------------------------------
|
||||
|
||||
:run_profile_d
|
||||
if not exist "%~1" (
|
||||
mkdir "%~1"
|
||||
)
|
||||
@ -43,4 +43,3 @@ exit /b
|
||||
)
|
||||
popd
|
||||
exit /b
|
||||
|
||||
|
3
vendor/psmodules/Cmder.ps1
vendored
3
vendor/psmodules/Cmder.ps1
vendored
@ -18,7 +18,8 @@ function readVersion($gitPath) {
|
||||
}
|
||||
|
||||
function isGitShim($gitPath) {
|
||||
# check if there's shim - and if yes follow the path
|
||||
# check if there is a shim file - if yes, read the actual executable path
|
||||
# See: github.com/ScoopInstaller/Shim
|
||||
|
||||
if (Test-Path "${gitPath}\git.shim") {
|
||||
$shim = (get-content "${gitPath}\git.shim")
|
||||
|
12
vendor/sources.json
vendored
12
vendor/sources.json
vendored
@ -1,13 +1,13 @@
|
||||
[
|
||||
{
|
||||
"name": "git-for-windows",
|
||||
"version": "2.41.0.windows.3",
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.3/PortableGit-2.41.0.3-64-bit.7z.exe"
|
||||
"version": "2.47.0.windows.1",
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.47.0.windows.1/PortableGit-2.47.0-64-bit.7z.exe"
|
||||
},
|
||||
{
|
||||
"name": "clink",
|
||||
"version": "1.5.1",
|
||||
"url": "https://github.com/chrisant996/clink/releases/download/v1.5.1/clink.1.5.1.1e9e51.zip"
|
||||
"version": "1.7.3",
|
||||
"url": "https://github.com/chrisant996/clink/releases/download/v1.7.3/clink.1.7.3.f8fb96.zip"
|
||||
},
|
||||
{
|
||||
"name": "conemu-maximus5",
|
||||
@ -16,7 +16,7 @@
|
||||
},
|
||||
{
|
||||
"name": "clink-completions",
|
||||
"version": "0.4.10",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.4.10.zip"
|
||||
"version": "0.6.0",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.0.zip"
|
||||
}
|
||||
]
|
||||
|
Loading…
x
Reference in New Issue
Block a user