mirror of
https://github.com/cmderdev/cmder.git
synced 2025-12-16 02:31:38 +08:00
Compare commits
34 Commits
copilot/fi
...
copilot/ad
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1509616205 | ||
|
|
6a698046a0 | ||
|
|
148f685bb3 | ||
|
|
73685145ea | ||
|
|
799f63de1f | ||
|
|
6da8e5849e | ||
|
|
25ac8f113e | ||
|
|
40ddf9a451 | ||
|
|
0db2dbf6f8 | ||
|
|
d285f63068 | ||
|
|
62cccaf284 | ||
|
|
e79f54e16e | ||
|
|
24427c1a41 | ||
|
|
a918a6aae1 | ||
|
|
d3ae747a6d | ||
|
|
7f0cfac498 | ||
|
|
dc3b142b32 | ||
|
|
9c3bbe9b24 | ||
|
|
be44bac956 | ||
|
|
4fb6bed907 | ||
|
|
f4e68b0388 | ||
|
|
a824b721cb | ||
|
|
153f7310a1 | ||
|
|
3172771f15 | ||
|
|
ef46d6465d | ||
|
|
eabadf96dc | ||
|
|
7b248bc9a3 | ||
|
|
2ce0146d6e | ||
|
|
5dfa14ccce | ||
|
|
4d259ba84c | ||
|
|
bbd7507b4e | ||
|
|
b9246177c0 | ||
|
|
a8d897f633 | ||
|
|
304b8c7a05 |
29
.github/workflows/branches.yml
vendored
29
.github/workflows/branches.yml
vendored
@@ -19,10 +19,25 @@ jobs:
|
|||||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
steps:
|
steps:
|
||||||
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it
|
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # fetch all history for all branches and tags
|
fetch-depth: 0 # fetch all history for all branches and tags
|
||||||
|
|
||||||
|
- name: Summary - Merge operation started
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "## 🔀 Update Branches - Workflow Summary" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "### Merge Operation" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Property | Value |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Source Branch | \`master\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Target Branch | \`development\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Triggered by | @${{ github.actor }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Commit | \`${{ github.sha }}\` |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
# Runs a single command using the runners shell
|
# Runs a single command using the runners shell
|
||||||
- name: Merge master into development
|
- name: Merge master into development
|
||||||
run: |
|
run: |
|
||||||
@@ -31,3 +46,15 @@ jobs:
|
|||||||
git checkout development
|
git checkout development
|
||||||
git merge --no-ff master
|
git merge --no-ff master
|
||||||
git push origin development
|
git push origin development
|
||||||
|
|
||||||
|
- name: Summary - Merge completed
|
||||||
|
if: success()
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "### ✅ Merge Successful" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "The \`master\` branch has been successfully merged into \`development\`." >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "**Merge type:** No fast-forward merge" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "> The development branch is now synchronized with the latest changes from master." >> $GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
74
.github/workflows/build.yml
vendored
74
.github/workflows/build.yml
vendored
@@ -35,10 +35,25 @@ jobs:
|
|||||||
discussions: write
|
discussions: write
|
||||||
steps:
|
steps:
|
||||||
- name: Check out repository code (Action from GitHub)
|
- name: Check out repository code (Action from GitHub)
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Summary - Repository checkout
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "## 📦 Build Cmder - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "### Repository Information" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Actor | @${{ github.actor }} |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Workflow | \`${{ github.workflow }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Add MSBuild to PATH
|
- name: Add MSBuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v2
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
|
||||||
@@ -47,11 +62,40 @@ jobs:
|
|||||||
working-directory: scripts
|
working-directory: scripts
|
||||||
run: .\build.ps1 -Compile -verbose
|
run: .\build.ps1 -Compile -verbose
|
||||||
|
|
||||||
|
- name: Summary - Build completed
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### ✅ Build Status" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "Cmder launcher successfully compiled." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Pack the built files
|
- name: Pack the built files
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
working-directory: scripts
|
working-directory: scripts
|
||||||
run: .\pack.ps1 -verbose
|
run: .\pack.ps1 -verbose
|
||||||
|
|
||||||
|
- name: Summary - Package artifacts
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### 📦 Artifacts Created" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Artifact | Size | Hash (SHA256) |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
$artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip")
|
||||||
|
foreach ($artifact in $artifacts) {
|
||||||
|
$path = "build/$artifact"
|
||||||
|
if (Test-Path $path) {
|
||||||
|
$size = (Get-Item $path).Length / 1MB
|
||||||
|
# Truncate hash to first 16 chars for summary readability (full hash in hashes.txt)
|
||||||
|
$hash = (Get-FileHash $path -Algorithm SHA256).Hash.Substring(0, 16)
|
||||||
|
echo "| \`$artifact\` | $([math]::Round($size, 2)) MB | \`$hash...\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Upload artifact (cmder.zip)
|
- name: Upload artifact (cmder.zip)
|
||||||
uses: actions/upload-artifact@v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
@@ -77,6 +121,19 @@ jobs:
|
|||||||
path: build/hashes.txt
|
path: build/hashes.txt
|
||||||
name: hashes.txt
|
name: hashes.txt
|
||||||
|
|
||||||
|
- name: Summary - Artifacts uploaded
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### ☁️ Upload Status" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "All artifacts successfully uploaded to GitHub Actions:" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- ✅ \`cmder.zip\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- ✅ \`cmder.7z\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- ✅ \`cmder_mini.zip\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- ✅ \`hashes.txt\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
@@ -88,3 +145,18 @@ jobs:
|
|||||||
draft: true
|
draft: true
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
|
||||||
|
- name: Summary - Release created
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### 🚀 Release Information" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "Draft release created for tag: **\`${{ github.ref_name }}\`**" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "Release includes:" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- Full version (\`cmder.zip\`, \`cmder.7z\`)" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- Mini version (\`cmder_mini.zip\`)" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "- File hashes (\`hashes.txt\`)" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "> ⚠️ Release is in **draft** mode. Please review and publish manually." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
38
.github/workflows/codeql.yml
vendored
38
.github/workflows/codeql.yml
vendored
@@ -45,7 +45,22 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Summary - CodeQL analysis started
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "## 🔒 CodeQL Security Analysis - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "### Analysis Configuration" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Language | \`${{ matrix.language }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
@@ -67,7 +82,28 @@ jobs:
|
|||||||
working-directory: scripts
|
working-directory: scripts
|
||||||
run: .\build.ps1 -Compile -verbose
|
run: .\build.ps1 -Compile -verbose
|
||||||
|
|
||||||
|
- name: Summary - Build status
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### ✅ Build Completed" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "Cmder launcher built successfully for CodeQL analysis." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v4
|
uses: github/codeql-action/analyze@v4
|
||||||
with:
|
with:
|
||||||
category: "/language:${{matrix.language}}"
|
category: "/language:${{matrix.language}}"
|
||||||
|
|
||||||
|
- name: Summary - Analysis completed
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### 🔍 CodeQL Analysis Results" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "✅ CodeQL security analysis completed successfully." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "**Language analyzed:** \`${{ matrix.language }}\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "> Check the Security tab for detailed findings and recommendations." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
65
.github/workflows/tests.yml
vendored
65
.github/workflows/tests.yml
vendored
@@ -38,17 +38,78 @@ jobs:
|
|||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: Summary - Test execution started
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "## 🧪 Run Tests - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "### Test Environment" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Runner OS | \`${{ runner.os }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Initialize vendors
|
- name: Initialize vendors
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
working-directory: scripts
|
working-directory: scripts
|
||||||
run: .\build.ps1 -verbose
|
run: .\build.ps1 -verbose
|
||||||
|
|
||||||
|
- name: Summary - Vendor initialization
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### ⚙️ Vendor Initialization" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "✅ Vendor dependencies initialized successfully." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Summary - Test results table header
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### 📋 Test Results" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Test | Status |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Testing Clink Shell
|
- name: Testing Clink Shell
|
||||||
run: |
|
run: |
|
||||||
cmd /c vendor\init.bat /v /d /t
|
cmd /c vendor\init.bat /v /d /t
|
||||||
|
|
||||||
|
- name: Summary - Clink Shell test
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "| Clink Shell | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
- name: Testing PowerShell
|
- name: Testing PowerShell
|
||||||
run: |
|
run: |
|
||||||
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Invoke-Expression '. ''vendor\profile.ps1'''"
|
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'"
|
||||||
|
|
||||||
|
- name: Summary - PowerShell test
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "| PowerShell | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
- name: Testing Bash
|
- name: Testing Bash
|
||||||
run: |
|
run: |
|
||||||
bash vendor/cmder.sh
|
bash vendor/cmder.sh
|
||||||
|
|
||||||
|
- name: Summary - Bash test
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "| Bash | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
|
- name: Summary - All tests completed
|
||||||
|
if: success()
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "### ✅ All Tests Completed" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "All shell environments tested successfully!" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
42
.github/workflows/vendor.yml
vendored
42
.github/workflows/vendor.yml
vendored
@@ -24,10 +24,18 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Summary - Workflow started
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "## 📦 Update Vendor - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "Checking for vendor dependency updates..." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- id: make-changes
|
- id: make-changes
|
||||||
name: Checking for updates
|
name: Checking for updates
|
||||||
env:
|
env:
|
||||||
@@ -51,6 +59,24 @@ jobs:
|
|||||||
Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ')
|
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
|
echo "UPDATE_MESSAGE<<<EOF`n$updateMessage`n<EOF" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||||
|
|
||||||
|
- name: Summary - Update check results
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
$count = $env:COUNT_UPDATED
|
||||||
|
if ($count -eq 0) {
|
||||||
|
echo "### ✅ No Updates Available" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "All vendor dependencies are up to date." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
} else {
|
||||||
|
$word = if ($count -eq 1) { 'dependency' } else { 'dependencies' }
|
||||||
|
echo "### 🔄 Updates Found" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "**$count** vendor $word updated:" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "$env:UPDATE_MESSAGE" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
}
|
||||||
|
|
||||||
- uses: peter-evans/create-pull-request@v7
|
- uses: peter-evans/create-pull-request@v7
|
||||||
if: env.COUNT_UPDATED > 0
|
if: env.COUNT_UPDATED > 0
|
||||||
with:
|
with:
|
||||||
@@ -63,3 +89,17 @@ jobs:
|
|||||||
commit-message: '⬆️ Update dependencies (${{ env.LIST_UPDATED }})'
|
commit-message: '⬆️ Update dependencies (${{ env.LIST_UPDATED }})'
|
||||||
branch: update-vendor
|
branch: update-vendor
|
||||||
base: master
|
base: master
|
||||||
|
|
||||||
|
- name: Summary - Pull request created
|
||||||
|
if: env.COUNT_UPDATED > 0
|
||||||
|
shell: pwsh
|
||||||
|
run: |
|
||||||
|
echo "### 🎉 Pull Request Created" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "A pull request has been created to update the vendor dependencies." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "**Branch:** \`update-vendor\`" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "**Updated dependencies:** $env:LIST_UPDATED" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "> Please review and merge the pull request to apply the updates." >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ However, Cmder can in fact run in a variety of other terminal emulators, and eve
|
|||||||
|
|
||||||
⚠ *Note:* Cmder includes built-in support for Windows Terminal directory tracking via OSC 9;9 sequences. This enables "Duplicate Tab" and "Split Pane" features to preserve the current working directory for both `cmd.exe` and PowerShell sessions.
|
⚠ *Note:* Cmder includes built-in support for Windows Terminal directory tracking via OSC 9;9 sequences. This enables "Duplicate Tab" and "Split Pane" features to preserve the current working directory for both `cmd.exe` and PowerShell sessions.
|
||||||
|
|
||||||
⚠ *Note:* Cmder also includes built-in support for [Windows Terminal shell integration](https://learn.microsoft.com/en-us/windows/terminal/tutorials/shell-integration) via OSC 133 sequences (A, B, C) for PowerShell sessions. This enables features like command navigation (jump between commands), command selection, visual command separators, and improved command history management in Windows Terminal.
|
⚠ *Note:* Cmder also includes built-in support for [Windows Terminal shell integration](https://learn.microsoft.com/en-us/windows/terminal/tutorials/shell-integration) via OSC 133 sequences (A, B, C, D) for PowerShell sessions. This enables features like command navigation (jump between commands), command selection, visual command separators, command exit code tracking, and improved command history management in Windows Terminal.
|
||||||
|
|
||||||
For instructions on how to integrate Cmder with your IDE, please read our [Wiki section](https://github.com/cmderdev/cmder/wiki#cmder-integration).
|
For instructions on how to integrate Cmder with your IDE, please read our [Wiki section](https://github.com/cmderdev/cmder/wiki#cmder-integration).
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
.\build.ps1 -SourcesPath '~/custom/vendors.json'
|
.\build.ps1 -SourcesPath '~/custom/vendors.json'
|
||||||
|
|
||||||
Build cmder with your own packages. See vendor/sources.json for the syntax you need to copy.
|
Build Cmder with your own packages. See vendor/sources.json for the syntax you need to copy.
|
||||||
.NOTES
|
.NOTES
|
||||||
AUTHORS
|
AUTHORS
|
||||||
Samuel Vasko, Jack Bennett
|
Samuel Vasko, Jack Bennett
|
||||||
@@ -60,7 +60,7 @@ Param(
|
|||||||
[switch]$Compile
|
[switch]$Compile
|
||||||
)
|
)
|
||||||
|
|
||||||
# Get the scripts and cmder root dirs we are building in.
|
# Get the scripts and Cmder root dirs we are building in.
|
||||||
$cmder_root = Resolve-Path "$PSScriptRoot\.."
|
$cmder_root = Resolve-Path "$PSScriptRoot\.."
|
||||||
|
|
||||||
# Dot source util functions into this scope
|
# Dot source util functions into this scope
|
||||||
|
|||||||
@@ -2,18 +2,18 @@
|
|||||||
.Synopsis
|
.Synopsis
|
||||||
Pack Cmder
|
Pack Cmder
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
Use this script to pack cmder into release archives
|
Use this script to pack Cmder into release archives
|
||||||
|
|
||||||
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
|
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
|
||||||
Then unblock the script for execution with UnblockFile .\pack.ps1
|
Then unblock the script for execution with UnblockFile .\pack.ps1
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
.\pack.ps1
|
.\pack.ps1
|
||||||
|
|
||||||
Creates default archives for cmder
|
Creates default archives for Cmder
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
.\pack.ps1 -verbose
|
.\pack.ps1 -verbose
|
||||||
|
|
||||||
Creates default archives for cmder with plenty of information
|
Creates default archives for Cmder with plenty of information
|
||||||
.NOTES
|
.NOTES
|
||||||
AUTHORS
|
AUTHORS
|
||||||
Samuel Vasko, Jack Bennett, Martin Kemp
|
Samuel Vasko, Jack Bennett, Martin Kemp
|
||||||
|
|||||||
@@ -172,13 +172,13 @@ function Register-Cmder() {
|
|||||||
# Text for the context menu item.
|
# Text for the context menu item.
|
||||||
$MenuText = "Cmder Here"
|
$MenuText = "Cmder Here"
|
||||||
|
|
||||||
, # Defaults to the current cmder directory when run from cmder.
|
, # Defaults to the current Cmder directory when run from Cmder.
|
||||||
$PathToExe = (Join-Path $env:CMDER_ROOT "cmder.exe")
|
$PathToExe = (Join-Path $env:CMDER_ROOT "cmder.exe")
|
||||||
|
|
||||||
, # Commands the context menu will execute.
|
, # Commands the context menu will execute.
|
||||||
$Command = "%V"
|
$Command = "%V"
|
||||||
|
|
||||||
, # Defaults to the icons folder in the cmder package.
|
, # Defaults to the icons folder in the Cmder package.
|
||||||
$icon = (Split-Path $PathToExe | Join-Path -ChildPath 'icons/cmder.ico')
|
$icon = (Split-Path $PathToExe | Join-Path -ChildPath 'icons/cmder.ico')
|
||||||
)
|
)
|
||||||
Begin
|
Begin
|
||||||
|
|||||||
49
vendor/git-prompt.sh
vendored
49
vendor/git-prompt.sh
vendored
@@ -5,9 +5,9 @@ function getGitStatusSetting() {
|
|||||||
# Get all git config entries for the current repository without pager
|
# Get all git config entries for the current repository without pager
|
||||||
gitConfig=$(git --no-pager config -l 2>/dev/null) || return 0 # treat failure as enabled
|
gitConfig=$(git --no-pager config -l 2>/dev/null) || return 0 # treat failure as enabled
|
||||||
|
|
||||||
# Check if git status for Cmder is disabled
|
# Check if git status display for Cmder is disabled via config
|
||||||
if [[ $gitConfig =~ (^|$'\n')cmder\.status=false($|$'\n') ]] || \
|
# Matches: cmder.status=false or cmder.shstatus=false (Bash-specific)
|
||||||
[[ $gitConfig =~ (^|$'\n')cmder\.shstatus=false($|$'\n') ]]
|
if [[ $gitConfig =~ (^|$'\n')cmder\.(sh)?status=false($|$'\n') ]]
|
||||||
then
|
then
|
||||||
return 1 # disabled
|
return 1 # disabled
|
||||||
fi
|
fi
|
||||||
@@ -47,9 +47,41 @@ then
|
|||||||
. ~/.config/git/git-prompt.sh
|
. ~/.config/git/git-prompt.sh
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Taken parts from https://github.com/git-for-windows/build-extra/blob/main/git-extra/git-prompt.sh
|
|
||||||
|
# Setup OSC 133 shell integration for Windows Terminal
|
||||||
|
if [ -n "$WT_SESSION" ]; then
|
||||||
|
__cmder_prompt_command() {
|
||||||
|
local exit_code=$?
|
||||||
|
# Emit OSC 133;D to mark the end of command execution with exit code
|
||||||
|
printf '\e]133;D;%s\a' "$exit_code"
|
||||||
|
return $exit_code
|
||||||
|
}
|
||||||
|
|
||||||
|
__cmder_preexec() {
|
||||||
|
# Emit OSC 133;C to mark the start of command execution
|
||||||
|
printf '\e]133;C\a'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Append to PROMPT_COMMAND to emit sequences just before each prompt
|
||||||
|
if [ -z "$PROMPT_COMMAND" ]; then
|
||||||
|
PROMPT_COMMAND="__cmder_prompt_command"
|
||||||
|
else
|
||||||
|
PROMPT_COMMAND="__cmder_prompt_command;$PROMPT_COMMAND"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use DEBUG trap to emit OSC 133;C before command execution
|
||||||
|
trap '__cmder_preexec' DEBUG
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source: github.com/git-for-windows/build-extra/blob/main/git-extra/git-prompt.sh
|
||||||
PS1='\[\033]0;${TITLEPREFIX:+$TITLEPREFIX:}${PWD//[^[:ascii:]]/?}\007\]' # set window title to TITLEPREFIX (if set) and current working directory
|
PS1='\[\033]0;${TITLEPREFIX:+$TITLEPREFIX:}${PWD//[^[:ascii:]]/?}\007\]' # set window title to TITLEPREFIX (if set) and current working directory
|
||||||
# PS1="$PS1"'\n' # new line (disabled)
|
# PS1="$PS1"'\n' # new line (disabled)
|
||||||
|
|
||||||
|
if [ -n "$WT_SESSION" ]; then
|
||||||
|
# Emit OSC 133;A to mark the start of prompt
|
||||||
|
PS1="$PS1"'\e]133;A\a'
|
||||||
|
fi
|
||||||
|
|
||||||
PS1="$PS1"'\[\033[32m\]' # change to green and bold
|
PS1="$PS1"'\[\033[32m\]' # change to green and bold
|
||||||
PS1="$PS1"'\u@\h ' # user@host<space>
|
PS1="$PS1"'\u@\h ' # user@host<space>
|
||||||
PS1="$PS1${MSYSTEM:+\[\033[35m\]$MSYSTEM }" # show MSYSTEM in purple (if set)
|
PS1="$PS1${MSYSTEM:+\[\033[35m\]$MSYSTEM }" # show MSYSTEM in purple (if set)
|
||||||
@@ -70,7 +102,7 @@ else
|
|||||||
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
||||||
PS1="$PS1"'`__git_ps1`' # bash function
|
PS1="$PS1"'`__git_ps1`' # bash function
|
||||||
else
|
else
|
||||||
PS1="$PS1"'\[\033[37;1m\]' # change color to white
|
PS1="$PS1"'\[\033[37;1m\]' # change color to white
|
||||||
PS1="$PS1"'`getSimpleGitBranch`'
|
PS1="$PS1"'`getSimpleGitBranch`'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -80,9 +112,14 @@ else
|
|||||||
PS1="$PS1"'\[\033[30;1m\]' # change color to grey in bold
|
PS1="$PS1"'\[\033[30;1m\]' # change color to grey in bold
|
||||||
PS1="$PS1"'λ ' # prompt: Cmder uses λ
|
PS1="$PS1"'λ ' # prompt: Cmder uses λ
|
||||||
PS1="$PS1"'\[\033[0m\]' # reset color
|
PS1="$PS1"'\[\033[0m\]' # reset color
|
||||||
|
|
||||||
|
if [ -n "$WT_SESSION" ]; then
|
||||||
|
# Emit OSC 133;B to mark the end of prompt
|
||||||
|
PS1="$PS1"'\[\e]133;B\a\]'
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MSYS2_PS1="$PS1" # for detection by MSYS2 SDK's bash.basrc
|
MSYS2_PS1="$PS1" # for detection by MSYS2 SDK's bash.basrc
|
||||||
|
|
||||||
# Evaluate all user-specific Bash completion scripts (if any)
|
# Evaluate all user-specific Bash completion scripts (if any)
|
||||||
if test -z "$WINELOADERNOEXEC"
|
if test -z "$WINELOADERNOEXEC"
|
||||||
|
|||||||
3
vendor/init.bat
vendored
3
vendor/init.bat
vendored
@@ -222,6 +222,9 @@ goto :SKIP_CLINK
|
|||||||
|
|
||||||
:: Revert back to plain cmd.exe prompt without clink
|
:: Revert back to plain cmd.exe prompt without clink
|
||||||
prompt $E[1;32;49m$P$S$_$E[1;30;49mλ$S$E[0m
|
prompt $E[1;32;49m$P$S$_$E[1;30;49mλ$S$E[0m
|
||||||
|
|
||||||
|
:: Add Windows Terminal shell integration support (OSC 133 sequences)
|
||||||
|
if defined WT_SESSION (prompt $e]133;D$e\$e]133;A$e\$e]9;9;$P$e\%PROMPT%$e]133;B$e\)
|
||||||
|
|
||||||
chcp %cp%>nul
|
chcp %cp%>nul
|
||||||
|
|
||||||
|
|||||||
91
vendor/profile.ps1
vendored
91
vendor/profile.ps1
vendored
@@ -7,15 +7,11 @@
|
|||||||
|
|
||||||
$CMDER_INIT_START = Get-Date
|
$CMDER_INIT_START = Get-Date
|
||||||
|
|
||||||
# Compatibility with PS major versions <= 2
|
# Determine the script root if not already set
|
||||||
if (!$PSScriptRoot) {
|
if (!$PSScriptRoot) {
|
||||||
$PSScriptRoot = Split-Path $Script:MyInvocation.MyCommand.Path
|
$PSScriptRoot = Split-Path $Script:MyInvocation.MyCommand.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ENV:CMDER_USER_CONFIG) {
|
|
||||||
Write-Verbose "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '$ENV:CMDER_USER_CONFIG'!"
|
|
||||||
}
|
|
||||||
|
|
||||||
# We do this for Powershell as Admin Sessions because CMDER_ROOT is not being set.
|
# We do this for Powershell as Admin Sessions because CMDER_ROOT is not being set.
|
||||||
if (!$ENV:CMDER_ROOT) {
|
if (!$ENV:CMDER_ROOT) {
|
||||||
if ($ENV:ConEmuDir) {
|
if ($ENV:ConEmuDir) {
|
||||||
@@ -31,6 +27,12 @@ $ENV:CMDER_ROOT = ($ENV:CMDER_ROOT).TrimEnd("\")
|
|||||||
# 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)
|
||||||
|
|
||||||
|
# Enable Debug and Verbose output if CMDER_DEBUG environment variable is set to '1' or 'true'
|
||||||
|
if ($env:CMDER_DEBUG -and ($env:CMDER_DEBUG -match '^(1|true)$')) {
|
||||||
|
$DebugPreference = 'Continue'
|
||||||
|
$VerbosePreference = 'Continue'
|
||||||
|
}
|
||||||
|
|
||||||
# Add Cmder modules directory to the autoload path.
|
# Add Cmder modules directory to the autoload path.
|
||||||
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
|
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
|
||||||
|
|
||||||
@@ -43,28 +45,40 @@ if (-not $moduleInstallerAvailable -and -not $env:PSModulePath.Contains($CmderMo
|
|||||||
$env:PSModulePath = $env:PSModulePath.Insert(0, "$CmderModulePath;")
|
$env:PSModulePath = $env:PSModulePath.Insert(0, "$CmderModulePath;")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($env:CMDER_USER_CONFIG) {
|
||||||
|
Write-Verbose "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '$ENV:CMDER_USER_CONFIG'!"
|
||||||
|
}
|
||||||
|
|
||||||
# Read vendored Git Version
|
# Read vendored Git Version
|
||||||
$gitVersionVendor = Get-GitVersion -GitPath "$ENV:CMDER_ROOT\vendor\git-for-windows\cmd"
|
$gitVendorPath = Join-Path $ENV:CMDER_ROOT 'vendor\git-for-windows\cmd'
|
||||||
Write-Debug "GIT VENDOR: ${gitVersionVendor}"
|
$gitVersionVendor = Get-GitVersion -GitPath $gitVendorPath
|
||||||
|
if (-not [string]::IsNullOrEmpty($gitVersionVendor)) {
|
||||||
|
Write-Debug "GIT VENDOR: ${gitVersionVendor}"
|
||||||
|
} else {
|
||||||
|
Write-Debug "GIT VENDOR is not present at '$gitVendorPath'"
|
||||||
|
}
|
||||||
|
|
||||||
# Get user installed Git version(s) if found, and compare them with vendored version.
|
# Get user installed Git version(s) if found, and compare them with vendored version.
|
||||||
foreach ($git in (Get-Command -ErrorAction SilentlyContinue 'git')) {
|
foreach ($git in (Get-Command -ErrorAction SilentlyContinue 'git')) {
|
||||||
Write-Debug "GIT PATH: {$git.Path}"
|
Write-Debug "GIT USER PATH: $($git.Path)"
|
||||||
$gitDir = Split-Path -Path $git.Path
|
$gitDir = Split-Path -Path $git.Path
|
||||||
$gitDir = Get-GitShimPath -GitPath $gitDir
|
$gitDir = Get-GitShimPath -GitPath $gitDir
|
||||||
$gitVersionUser = Get-GitVersion -GitPath $gitDir
|
$gitVersionUser = Get-GitVersion -GitPath $gitDir
|
||||||
Write-Debug "GIT USER: ${gitVersionUser}"
|
Write-Debug "GIT USER VERSION: ${gitVersionUser}"
|
||||||
|
|
||||||
$useGitVersion = Compare-GitVersion -UserVersion $gitVersionUser -VendorVersion $gitVersionVendor
|
$useGitVersion = Compare-GitVersion -UserVersion $gitVersionUser -VendorVersion $gitVersionVendor
|
||||||
Write-Debug "Using Git Version: ${useGitVersion}"
|
Write-Debug "Using Git Version: ${useGitVersion}"
|
||||||
|
|
||||||
# Use user installed Git
|
# Use user installed Git
|
||||||
if ($null -eq $gitPathUser) {
|
if ($null -eq $gitPathUser) {
|
||||||
|
Write-Debug "Detected Git from mingw bin directory"
|
||||||
|
Write-Debug "Git Dir: ${gitDir}"
|
||||||
if ($gitDir -match '\\mingw32\\bin' -or $gitDir -match '\\mingw64\\bin') {
|
if ($gitDir -match '\\mingw32\\bin' -or $gitDir -match '\\mingw64\\bin') {
|
||||||
$gitPathUser = ($gitDir.subString(0,$gitDir.Length - 12))
|
$gitPathUser = $gitDir.subString(0, $gitDir.Length - 12)
|
||||||
} else {
|
} else {
|
||||||
$gitPathUser = ($gitDir.subString(0,$gitDir.Length - 4))
|
$gitPathUser = $gitDir.subString(0, $gitDir.Length - 4)
|
||||||
}
|
}
|
||||||
|
Write-Debug "Git Path User: ${gitDir}"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($useGitVersion -eq $gitVersionUser) {
|
if ($useGitVersion -eq $gitVersionUser) {
|
||||||
@@ -97,20 +111,19 @@ if (Get-Command -Name "vim" -ErrorAction SilentlyContinue) {
|
|||||||
if (Get-Module PSReadline -ErrorAction "SilentlyContinue") {
|
if (Get-Module PSReadline -ErrorAction "SilentlyContinue") {
|
||||||
# Display an extra prompt line between the prompt and the command input
|
# Display an extra prompt line between the prompt and the command input
|
||||||
Set-PSReadlineOption -ExtraPromptLineCount 1
|
Set-PSReadlineOption -ExtraPromptLineCount 1
|
||||||
|
|
||||||
# Add OSC 133;C support for Windows Terminal shell integration
|
# Invoked when Enter is pressed to submit a command
|
||||||
# This marks the start of command output (emitted when Enter is pressed)
|
|
||||||
if ($env:WT_SESSION) {
|
if ($env:WT_SESSION) {
|
||||||
Set-PSReadLineKeyHandler -Key Enter -ScriptBlock {
|
Set-PSReadLineKeyHandler -Key Enter -ScriptBlock {
|
||||||
# Get the current command line
|
# Get the current command line
|
||||||
$line = $null
|
$line = $null
|
||||||
$cursor = $null
|
$cursor = $null
|
||||||
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line, [ref]$cursor)
|
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line, [ref]$cursor)
|
||||||
|
|
||||||
# Accept the line first
|
# Accept the line first
|
||||||
[Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
|
[Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
|
||||||
|
|
||||||
# Emit OSC 133;C sequence to mark start of command output
|
# Emit OSC 133;C to mark start of command output
|
||||||
# This is written directly to the console after the command is accepted
|
# This is written directly to the console after the command is accepted
|
||||||
[Console]::Write("$([char]0x1B)]133;C$([char]7)")
|
[Console]::Write("$([char]0x1B)]133;C$([char]7)")
|
||||||
}
|
}
|
||||||
@@ -220,23 +233,28 @@ if ( $(Get-Command prompt).Definition -match 'PS \$\(\$executionContext.SessionS
|
|||||||
[ScriptBlock]$Prompt = {
|
[ScriptBlock]$Prompt = {
|
||||||
$lastSUCCESS = $?
|
$lastSUCCESS = $?
|
||||||
$realLastExitCode = $LastExitCode
|
$realLastExitCode = $LastExitCode
|
||||||
|
|
||||||
# Emit OSC 9;9 sequence for Windows Terminal directory tracking
|
# Terminal-specific escape sequences for Windows Terminal and ConEmu
|
||||||
# This enables "Duplicate Tab" and "Split Pane" to preserve the working directory
|
if ($env:WT_SESSION -or $env:ConEmuPID) {
|
||||||
# Only active in Windows Terminal ($env:WT_SESSION) or ConEmu ($env:ConEmuPID)
|
# Emit OSC 133;D to mark the end of command execution with exit code
|
||||||
$loc = $executionContext.SessionState.Path.CurrentLocation
|
if ($env:WT_SESSION) {
|
||||||
if (($env:WT_SESSION -or $env:ConEmuPID) -and $loc.Provider.Name -eq "FileSystem") {
|
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]133;D;$realLastExitCode$([char]7)"
|
||||||
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]9;9;`"$($loc.ProviderPath)`"$([char]0x1B)\"
|
}
|
||||||
|
|
||||||
|
# Emit OSC 9;9 to enable directory tracking
|
||||||
|
# Enables "Duplicate Tab" and "Split Pane" to preserve the working directory
|
||||||
|
$loc = $executionContext.SessionState.Path.CurrentLocation
|
||||||
|
if ($loc.Provider.Name -eq "FileSystem") {
|
||||||
|
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]9;9;`"$($loc.ProviderPath)`"$([char]0x1B)\"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Emit OSC 133;A to mark the start of the prompt
|
||||||
|
# Enables features like command navigation, selection, and visual separators
|
||||||
|
if ($env:WT_SESSION) {
|
||||||
|
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]133;A$([char]7)"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Emit OSC 133;A sequence for Windows Terminal shell integration
|
|
||||||
# This marks the start of the prompt
|
|
||||||
# Enables features like command navigation, selection, and visual separators
|
|
||||||
# Only active in Windows Terminal ($env:WT_SESSION)
|
|
||||||
if ($env:WT_SESSION) {
|
|
||||||
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]133;A$([char]7)"
|
|
||||||
}
|
|
||||||
|
|
||||||
$host.UI.RawUI.WindowTitle = Microsoft.PowerShell.Management\Split-Path $pwd.ProviderPath -Leaf
|
$host.UI.RawUI.WindowTitle = Microsoft.PowerShell.Management\Split-Path $pwd.ProviderPath -Leaf
|
||||||
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x200B)`r$([char]0x1B)[K"
|
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x200B)`r$([char]0x1B)[K"
|
||||||
if ($lastSUCCESS -or ($LastExitCode -ne 0)) {
|
if ($lastSUCCESS -or ($LastExitCode -ne 0)) {
|
||||||
@@ -245,13 +263,12 @@ if ( $(Get-Command prompt).Definition -match 'PS \$\(\$executionContext.SessionS
|
|||||||
PrePrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
PrePrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
||||||
CmderPrompt
|
CmderPrompt
|
||||||
PostPrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
PostPrompt | Microsoft.PowerShell.Utility\Write-Host -NoNewline
|
||||||
|
|
||||||
# Emit OSC 133;B sequence for Windows Terminal shell integration
|
# Emit OSC 133;B to mark the start of command input (after prompt, before user types)
|
||||||
# This marks the start of command input (after prompt, before user types)
|
|
||||||
if ($env:WT_SESSION) {
|
if ($env:WT_SESSION) {
|
||||||
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]133;B$([char]7)"
|
Microsoft.PowerShell.Utility\Write-Host -NoNewline "$([char]0x1B)]133;B$([char]7)"
|
||||||
}
|
}
|
||||||
|
|
||||||
$global:LastExitCode = $realLastExitCode
|
$global:LastExitCode = $realLastExitCode
|
||||||
return " "
|
return " "
|
||||||
}
|
}
|
||||||
|
|||||||
12
vendor/sources.json
vendored
12
vendor/sources.json
vendored
@@ -1,13 +1,13 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "git-for-windows",
|
"name": "git-for-windows",
|
||||||
"version": "2.51.2.windows.1",
|
"version": "2.52.0.windows.1",
|
||||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.51.2.windows.1/PortableGit-2.51.2-64-bit.7z.exe"
|
"url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "clink",
|
"name": "clink",
|
||||||
"version": "1.8.8",
|
"version": "1.9.5",
|
||||||
"url": "https://github.com/chrisant996/clink/releases/download/v1.8.8/clink.1.8.8.a63364.zip"
|
"url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "conemu-maximus5",
|
"name": "conemu-maximus5",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "clink-completions",
|
"name": "clink-completions",
|
||||||
"version": "0.6.6",
|
"version": "0.6.7",
|
||||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.6.zip"
|
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.7.zip"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user