Compare commits

..

20 Commits

Author SHA1 Message Date
9be28807cb ⬆️ Update dependencies (conemu-maximus5 v23.07.24) (#2863)
Co-authored-by: DRSDavidSoft <DRSDavidSoft@users.noreply.github.com>
2023-07-24 14:55:59 +01:00
e2168a361c ⬆️ Update dependencies (git-for-windows v2.41.0.windows.3, clink v1.5.1, conemu-maximus5 v23.07.23, clink-completions v0.4.10) (#2850)
Co-authored-by: DRSDavidSoft <DRSDavidSoft@users.noreply.github.com>
2023-07-24 09:29:50 +01:00
7542376213 Remove appveyor config (#2805)
This should be merged after #2804

Signed-off-by: Martin Kemp <me@martinke.mp>
2023-07-20 13:56:52 +01:00
e9750ab73d avoid erroneous messages, skip clink if injection fails fatally 2023-07-04 12:10:32 +03:30
59e14a1783 Remove deprecated PsGet module in favor of Install-Module 2023-05-23 14:26:50 +03:30
34f2aabb8e Remove PSGet Entirely
Fixes #2841

Signed-off-by: Martin Kemp <me@martinke.mp>
2023-05-23 11:11:39 +01:00
845720e25a Merge pull request #2847 from chrisant996/fix_2846
Fix 2846
2023-05-17 11:30:13 +03:30
55676399d5 Merge pull request #2849 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-05-16 23:51:54 +03:30
48e4dff882 ⬆️ Update dependencies (clink-completions v0.4.8) 2023-05-16 13:40:42 +00:00
a605ec520d Clean luacheck warnings. 2023-05-15 09:18:59 -07:00
5fab87f4d6 Remove unused function.
The `get_hg_status()` function has been unused since commit
35eab7a51a in 2018.
2023-05-15 09:18:47 -07:00
c9153c96bf Fix global Lua namespace pollution.
Some variables were global when the intent was to be local variables.
2023-05-15 09:17:01 -07:00
74381ecd19 Fix #2846; errors when git/svn/hg not installed.
Also fixes error when HEAD is not available in a git repo, e.g. due to a
corrupt repo.
2023-05-15 09:15:36 -07:00
8d39f79a90 Merge pull request #2844 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-05-11 18:37:01 +03:30
7b880efda4 ⬆️ Update dependencies (git-for-windows v2.40.1.windows.1) 2023-04-26 13:40:36 +00:00
4aefd0bb71 Merge pull request #2843 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-04-24 17:34:59 +03:30
7daeb465e8 ⬆️ Update dependencies (clink v1.4.24) 2023-04-24 13:41:39 +00:00
23488fcbb2 fetch all history for all branches and tags 2023-04-23 23:47:28 +03:30
d838f861af checkout development 2023-04-23 23:43:26 +03:30
d80202c791 add task to auto push to development 2023-04-23 23:39:35 +03:30
7 changed files with 119 additions and 2284 deletions

33
.github/workflows/branches.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Update branches
# Controls when the action will run.
on:
# Triggers the workflow on push events for the development branch
push:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This job updates the development branch with the master branch
update-development:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# 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
with:
fetch-depth: 0 # fetch all history for all branches and tags
# Runs a single command using the runners shell
- name: Merge master into development
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git checkout development
git merge --no-ff master
git push origin development

View File

@ -1,60 +0,0 @@
#---------------------------------#
# general configuration #
#---------------------------------#
version: 1.0.{build}-{branch}
# branches to build
branches:
# blacklist
except:
- gh-pages
#---------------------------------#
# environment configuration #
#---------------------------------#
# Operating system (build VM template)
os: Visual Studio 2022
#---------------------------------#
# build configuration #
#---------------------------------#
build_script:
- ps: cd scripts; .\build.ps1 -Compile -verbose
after_build:
- ps: .\pack.ps1 -verbose
# Disable test search, since we don't have any.
test: off
#---------------------------------#
# artifacts #
#---------------------------------#
artifacts:
- path: build\cmder.zip
name: cmderzip
- path: build\cmder.7z
name: cmder7z
- path: build\cmder_mini.zip
name: cmdermini
- path: build\hashes.txt
name: hashes
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
# Webhook
- provider: Webhook
url: https://webhooks.gitter.im/e/d673abb1b2e659dcd625
on_build_success: true
on_build_failure: true
on_build_status_changed: true

97
vendor/clink.lua vendored
View File

@ -3,7 +3,12 @@
-- !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED -- !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
-- !!! Use "%CMDER_ROOT%\config\<whatever>.lua" to add your lua startup scripts -- !!! Use "%CMDER_ROOT%\config\<whatever>.lua" to add your lua startup scripts
-- luacheck: globals clink -- luacheck: globals CMDER_SESSION
-- luacheck: globals uah_color cwd_color lamb_color clean_color dirty_color conflict_color unknown_color
-- luacheck: globals prompt_homeSymbol prompt_lambSymbol prompt_type prompt_useHomeSymbol prompt_useUserAtHost
-- luacheck: globals prompt_singleLine prompt_includeVersionControl
-- luacheck: globals prompt_overrideGitStatusOptIn prompt_overrideSvnStatusOptIn
-- luacheck: globals clink io.popenyield os.isdir settings.get
-- At first, load the original clink.lua file -- At first, load the original clink.lua file
-- this is needed as we set the script path to this dir and therefore the original -- this is needed as we set the script path to this dir and therefore the original
@ -151,12 +156,12 @@ local function set_prompt_filter()
cwd = string.gsub(cwd, clink.get_env("HOME"), prompt_homeSymbol) cwd = string.gsub(cwd, clink.get_env("HOME"), prompt_homeSymbol)
end end
uah = '' local uah = ''
if prompt_useUserAtHost then if prompt_useUserAtHost then
uah = clink.get_env("USERNAME") .. "@" .. clink.get_env("COMPUTERNAME") .. ' ' uah = clink.get_env("USERNAME") .. "@" .. clink.get_env("COMPUTERNAME") .. ' '
end end
cr = "\n" local cr = "\n"
if prompt_singleLine then if prompt_singleLine then
cr = ' ' cr = ' '
end end
@ -170,7 +175,7 @@ local function set_prompt_filter()
local version_control = prompt_includeVersionControl and "{git}{hg}{svn}" or "" local version_control = prompt_includeVersionControl and "{git}{hg}{svn}" or ""
prompt = "{uah}{cwd}" .. version_control .. cr .. get_lamb_color() .. "{env}{lamb}\x1b[0m " local prompt = "{uah}{cwd}" .. version_control .. cr .. get_lamb_color() .. "{env}{lamb}\x1b[0m "
prompt = string.gsub(prompt, "{uah}", uah) prompt = string.gsub(prompt, "{uah}", uah)
prompt = string.gsub(prompt, "{cwd}", cwd) prompt = string.gsub(prompt, "{cwd}", cwd)
prompt = string.gsub(prompt, "{env}", env) prompt = string.gsub(prompt, "{env}", env)
@ -191,7 +196,7 @@ end
local function get_dir_contains(path, dirname) local function get_dir_contains(path, dirname)
-- return parent path for specified entry (either file or directory) -- return parent path for specified entry (either file or directory)
local function pathname(path) local function pathname(path) -- luacheck: ignore 432
local prefix = "" local prefix = ""
local i = path:find("[\\/:][^\\/:]*$") local i = path:find("[\\/:][^\\/:]*$")
if i then if i then
@ -201,14 +206,14 @@ local function get_dir_contains(path, dirname)
end end
-- Navigates up one level -- Navigates up one level
local function up_one_level(path) local function up_one_level(path) -- luacheck: ignore 432
if path == nil then path = '.' end if path == nil then path = '.' end
if path == '.' then path = clink.get_cwd() end if path == '.' then path = clink.get_cwd() end
return pathname(path) return pathname(path)
end end
-- Checks if provided directory contains git directory -- Checks if provided directory contains git directory
local function has_specified_dir(path, specified_dir) local function has_specified_dir(path, specified_dir) -- luacheck: ignore 432
if path == nil then path = '.' end if path == nil then path = '.' end
local found_dirs = clink.find_dirs(path..'/'..specified_dir) local found_dirs = clink.find_dirs(path..'/'..specified_dir)
if #found_dirs > 0 then return true end if #found_dirs > 0 then return true end
@ -236,7 +241,7 @@ end
local function get_git_dir(path) local function get_git_dir(path)
-- return parent path for specified entry (either file or directory) -- return parent path for specified entry (either file or directory)
local function pathname(path) local function pathname(path) -- luacheck: ignore 432
local prefix = "" local prefix = ""
local i = path:find("[\\/:][^\\/:]*$") local i = path:find("[\\/:][^\\/:]*$")
if i then if i then
@ -255,7 +260,8 @@ local function get_git_dir(path)
local gitfile = io.open(dir..'/.git') local gitfile = io.open(dir..'/.git')
if not gitfile then return false end if not gitfile then return false end
local git_dir = gitfile:read():match('gitdir: (.*)') local line = gitfile:read() or ''
local git_dir = line:match('gitdir: (.*)')
gitfile:close() gitfile:close()
if os.isdir then -- only available in Clink v1.0.0 and higher if os.isdir then -- only available in Clink v1.0.0 and higher
@ -303,6 +309,9 @@ local function get_git_branch(git_dir)
local HEAD = head_file:read() local HEAD = head_file:read()
head_file:close() head_file:close()
-- If HEAD is missing, something is wrong.
if not HEAD then return end
-- if HEAD matches branch expression, then we're on named branch -- if HEAD matches branch expression, then we're on named branch
-- otherwise it is a detached commit -- otherwise it is a detached commit
local branch_name = HEAD:match('ref: refs/heads/(.+)') local branch_name = HEAD:match('ref: refs/heads/(.+)')
@ -322,6 +331,9 @@ local function get_hg_branch()
-- local cmd = "hg prompt \"{branch}{status}{|{patch}}{update}\"" -- local cmd = "hg prompt \"{branch}{status}{|{patch}}{update}\""
local cmd = "hg branch 2>nul" local cmd = "hg branch 2>nul"
local file = io.popen(cmd) local file = io.popen(cmd)
if not file then
return false
end
for line in file:lines() do for line in file:lines() do
local m = line:match("(.+)$") local m = line:match("(.+)$")
@ -339,8 +351,12 @@ end
-- Find out current branch -- Find out current branch
-- @return {false|svn branch name} -- @return {false|svn branch name}
--- ---
local function get_svn_branch(svn_dir) local function get_svn_branch()
local file = io_popenyield("svn info 2>nul") local file = io_popenyield("svn info 2>nul")
if not file then
return false
end
for line in file:lines() do for line in file:lines() do
local m = line:match("^Relative URL:") local m = line:match("^Relative URL:")
if m then if m then
@ -359,12 +375,16 @@ end
--- ---
local function get_git_status() local function get_git_status()
local file = io_popenyield("git --no-optional-locks status --porcelain 2>nul") local file = io_popenyield("git --no-optional-locks status --porcelain 2>nul")
if not file then
return {}
end
local conflict_found = false local conflict_found = false
local is_status = true local is_status = true
for line in file:lines() do for line in file:lines() do
local code = line:sub(1, 2) local code = line:sub(1, 2)
-- print (string.format("code: %s, line: %s", code, line)) -- print (string.format("code: %s, line: %s", code, line))
if code == "DD" or code == "AU" or code == "UD" or code == "UA" or code == "DU" or code == "AA" or code == "UU" then if code == "DD" or code == "AU" or code == "UD" or code == "UA" or code == "DU" or code == "AA" or code == "UU" then -- luacheck: no max line length
is_status = false is_status = false
conflict_found = true conflict_found = true
break break
@ -374,38 +394,27 @@ local function get_git_status()
end end
end end
file:close() file:close()
return { status = is_status, conflict = conflict_found } return { status = is_status, conflict = conflict_found }
end end
---
-- Get the status of working dir
-- @return {bool}
---
local function get_hg_status()
local file = io.popen("hg status -0")
for line in file:lines() do
file:close()
return false
end
file:close()
return true
end
--- ---
-- Get the status of working dir -- Get the status of working dir
-- @return {bool} -- @return {bool}
--- ---
local function get_svn_status() local function get_svn_status()
local file = io_popenyield("svn status -q") local file = io_popenyield("svn status -q")
for line in file:lines() do if not file then
return { error = true }
end
for line in file:lines() do -- luacheck: ignore 512, no unused
file:close() file:close()
return false return { clean = false }
end end
file:close() file:close()
return true return { clean = true }
end end
--- ---
@ -433,6 +442,7 @@ local function get_git_status_setting()
end end
local gitStatusConfig = io_popenyield("git --no-pager config cmder.status 2>nul") local gitStatusConfig = io_popenyield("git --no-pager config cmder.status 2>nul")
if gitStatusConfig then
for line in gitStatusConfig:lines() do for line in gitStatusConfig:lines() do
if string.match(line, 'false') then if string.match(line, 'false') then
gitStatusConfig:close() gitStatusConfig:close()
@ -441,8 +451,10 @@ local function get_git_status_setting()
end end
end end
gitStatusConfig:close() gitStatusConfig:close()
end
local gitCmdStatusConfig = io_popenyield("git --no-pager config cmder.cmdstatus 2>nul") local gitCmdStatusConfig = io_popenyield("git --no-pager config cmder.cmdstatus 2>nul")
if gitCmdStatusConfig then
for line in gitCmdStatusConfig:lines() do for line in gitCmdStatusConfig:lines() do
if string.match(line, 'false') then if string.match(line, 'false') then
gitCmdStatusConfig:close() gitCmdStatusConfig:close()
@ -451,6 +463,7 @@ local function get_git_status_setting()
end end
end end
gitCmdStatusConfig:close() gitCmdStatusConfig:close()
end
last_git_status_setting = true last_git_status_setting = true
return true return true
@ -536,8 +549,6 @@ local function hg_prompt_filter()
return false return false
end end
local result = ""
local hg_dir = get_hg_dir() local hg_dir = get_hg_dir()
if hg_dir then if hg_dir then
-- Colors for mercurial status -- Colors for mercurial status
@ -559,16 +570,20 @@ local function hg_prompt_filter()
local color = colors.clean local color = colors.clean
local pipe = io.popen("hg status -amrd 2>&1") local pipe = io.popen("hg status -amrd 2>&1")
local output = pipe:read('*all') if pipe then
local rc = { pipe:close() } output = pipe:read('*all')
pipe:close()
if output ~= nil and output ~= "" then color = colors.dirty end if output ~= nil and output ~= "" then color = colors.dirty end
result = color .. "(" .. branch .. ")"
end
end end
local result = color .. "(" .. branch .. ")"
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", " "..verbatim(result)) clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", " "..verbatim(result))
return false return false
end
end
-- No hg present or not in hg repo
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", "")
end end
local function svn_prompt_filter() local function svn_prompt_filter()
@ -589,7 +604,6 @@ local function svn_prompt_filter()
if svn_dir then if svn_dir then
-- if we're inside of svn repo then try to detect current branch -- if we're inside of svn repo then try to detect current branch
local branch = get_svn_branch() local branch = get_svn_branch()
local color
if branch then if branch then
-- If in a different repo or branch than last time, discard cached info -- If in a different repo or branch than last time, discard cached info
if cached_info.svn_dir ~= svn_dir or cached_info.svn_branch ~= branch then if cached_info.svn_dir ~= svn_dir or cached_info.svn_branch ~= branch then
@ -599,7 +613,7 @@ local function svn_prompt_filter()
end end
-- Get the svn status using coroutine if available and option is enabled. Otherwise use a blocking call -- Get the svn status using coroutine if available and option is enabled. Otherwise use a blocking call
local svnStatus local svnStatus
if clink.promptcoroutine and io.popenyield and settings.get("prompt.async") and prompt_overrideSvnStatusOptIn then if clink.promptcoroutine and io.popenyield and settings.get("prompt.async") and prompt_overrideSvnStatusOptIn then -- luacheck: no max line length
svnStatus = clink_promptcoroutine(function () svnStatus = clink_promptcoroutine(function ()
return get_svn_status() return get_svn_status()
end) end)
@ -613,9 +627,10 @@ local function svn_prompt_filter()
svnStatus = get_svn_status() svnStatus = get_svn_status()
end end
if svnStatus == nil then local color
if not svnStatus or svnStatus.error then
color = colors.nostatus color = colors.nostatus
elseif svnStatus then elseif svnStatus.clean then
color = colors.clean color = colors.clean
else else
color = colors.dirty color = colors.dirty

15
vendor/init.bat vendored
View File

@ -153,7 +153,8 @@ if not "%CMDER_SHELL%" == "cmd" (
set CMDER_ALIASES=0 set CMDER_ALIASES=0
) )
:: Pick right version of Clink :: Pick the right version of Clink
:: TODO: Support for ARM
if "%PROCESSOR_ARCHITECTURE%"=="x86" ( if "%PROCESSOR_ARCHITECTURE%"=="x86" (
set clink_architecture=x86 set clink_architecture=x86
set architecture_bits=32 set architecture_bits=32
@ -166,7 +167,7 @@ if "%PROCESSOR_ARCHITECTURE%"=="x86" (
) )
if "%CMDER_CLINK%" == "1" ( if "%CMDER_CLINK%" == "1" (
REM TODO: If clink is already injected, goto :CLINK_FINISH REM TODO: Detect if clink is already injected, if so goto :CLINK_FINISH
goto :INJECT_CLINK goto :INJECT_CLINK
) )
@ -205,8 +206,10 @@ goto :SKIP_CLINK
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_CONFIG_DIR%" --scripts "%CMDER_ROOT%\vendor" "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_CONFIG_DIR%" --scripts "%CMDER_ROOT%\vendor"
if errorlevel 1 ( :: Check if a fatal error occurred when trying to inject Clink
%print_error% "Clink initialization has failed with error code: %errorlevel%" if errorlevel 2 (
REM %print_error% "Clink injection has failed with error code: %errorlevel%"
goto :SKIP_CLINK
) )
goto :CLINK_FINISH goto :CLINK_FINISH
@ -237,8 +240,8 @@ if "%CMDER_CONFIGURED%" GTR "1" (
:: Prepare for git-for-windows :: Prepare for git-for-windows
:: Detect which git.exe version to use :: Detect which git.exe version to use
:: * if the users points as to a specific git, use that :: * if the user points to a specific git, use that
:: * test if a git is in path and if yes, use that :: * test if git is in path and if yes, use that
:: * last, use our vendored git :: * last, use our vendored git
:: also check that we have a recent enough version of git by examining the version string :: also check that we have a recent enough version of git by examining the version string
if defined GIT_INSTALL_ROOT ( if defined GIT_INSTALL_ROOT (

1
vendor/profile.ps1 vendored
View File

@ -28,7 +28,6 @@ if (!$ENV:CMDER_ROOT) {
# Remove trailing '\' # Remove trailing '\'
$ENV:CMDER_ROOT = ($ENV:CMDER_ROOT).TrimEnd("\") $ENV:CMDER_ROOT = ($ENV:CMDER_ROOT).TrimEnd("\")
# Do not load bundled PsGet if a module installer is already available
# -> recent PowerShell versions include PowerShellGet out of the box # -> recent PowerShell versions include PowerShellGet out of the box
$moduleInstallerAvailable = [bool](Get-Command -Name 'Install-Module' -ErrorAction SilentlyContinue) $moduleInstallerAvailable = [bool](Get-Command -Name 'Install-Module' -ErrorAction SilentlyContinue)

File diff suppressed because it is too large Load Diff

16
vendor/sources.json vendored
View File

@ -1,22 +1,22 @@
[ [
{ {
"name": "git-for-windows", "name": "git-for-windows",
"version": "2.40.0.windows.1", "version": "2.41.0.windows.3",
"url": "https://github.com/git-for-windows/git/releases/download/v2.40.0.windows.1/PortableGit-2.40.0-64-bit.7z.exe" "url": "https://github.com/git-for-windows/git/releases/download/v2.41.0.windows.3/PortableGit-2.41.0.3-64-bit.7z.exe"
}, },
{ {
"name": "clink", "name": "clink",
"version": "1.4.23", "version": "1.5.1",
"url": "https://github.com/chrisant996/clink/releases/download/v1.4.23/clink.1.4.23.5fc3fc.zip" "url": "https://github.com/chrisant996/clink/releases/download/v1.5.1/clink.1.5.1.1e9e51.zip"
}, },
{ {
"name": "conemu-maximus5", "name": "conemu-maximus5",
"version": "22.12.18", "version": "23.07.24",
"url": "https://github.com/Maximus5/ConEmu/releases/download/v22.12.18/ConEmuPack.221218.7z" "url": "https://github.com/Maximus5/ConEmu/releases/download/v23.07.24/ConEmuPack.230724.7z"
}, },
{ {
"name": "clink-completions", "name": "clink-completions",
"version": "0.4.7", "version": "0.4.10",
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.4.7.zip" "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.4.10.zip"
} }
] ]