26382a7ac6
CI / Test (macos-latest) (push) Waiting to run
CI / Test (ubuntu-latest) (push) Waiting to run
CI / Test (windows-latest) (push) Waiting to run
CI / Clippy (push) Waiting to run
CI / Build (no embeddings / no ORT) (push) Waiting to run
CI / Format (push) Waiting to run
CI / Cookbook (Node) (push) Waiting to run
CI / Pi Extension (Node) (push) Waiting to run
CI / Rust SDK (lean-ctx-client) (push) Waiting to run
CI / Embed SDK (lean-ctx-sdk) (push) Waiting to run
CI / Python SDK (leanctx) (push) Waiting to run
CI / Hermes Plugin (Python) (push) Waiting to run
CI / SDK Conformance Matrix (push) Waiting to run
CI / Coverage (push) Waiting to run
CI / cargo-deny (push) Waiting to run
CI / Adversarial Safety (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
JetBrains Plugin / Actionlint (push) Waiting to run
CI / Benchmarks (push) Waiting to run
CI / Output-Quality Gate (eval A/B) (push) Waiting to run
CI / Documentation (push) Waiting to run
CI / CI Green (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (rust) (push) Waiting to run
JetBrains Plugin / Validation (push) Waiting to run
JetBrains Plugin / Build (push) Waiting to run
JetBrains Plugin / Test (push) Blocked by required conditions
Security Check / Security Scan (push) Waiting to run
102 lines
2.6 KiB
PowerShell
102 lines
2.6 KiB
PowerShell
<#
|
|
install.ps1 - Build lean-ctx locally on Windows and install it into Cargo's bin directory.
|
|
|
|
Usage:
|
|
.\install.ps1
|
|
.\install.ps1 -BuildOnly
|
|
#>
|
|
|
|
param(
|
|
[switch]$BuildOnly,
|
|
[switch]$Help
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
if ($Help) {
|
|
Write-Host 'Usage: .\install.ps1 [-BuildOnly] [-Help]'
|
|
Write-Host ''
|
|
Write-Host ' (no args) Build lean-ctx locally and install it into Cargo''s bin directory'
|
|
Write-Host ' -BuildOnly Build only, do not install'
|
|
Write-Host ' -Help Show this help message'
|
|
exit 0
|
|
}
|
|
|
|
function Get-CargoBinDir {
|
|
if ($env:CARGO_HOME) {
|
|
return Join-Path $env:CARGO_HOME 'bin'
|
|
}
|
|
|
|
return Join-Path $HOME '.cargo\bin'
|
|
}
|
|
|
|
function Stop-RunningLeanCtx {
|
|
$existing = Get-Command lean-ctx -ErrorAction SilentlyContinue
|
|
if ($null -ne $existing) {
|
|
Write-Host 'Stopping running lean-ctx (if any)...'
|
|
try {
|
|
& $existing.Source stop | Out-Null
|
|
}
|
|
catch {
|
|
}
|
|
}
|
|
}
|
|
|
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$rustDir = Join-Path $scriptDir 'rust'
|
|
|
|
if (-not (Test-Path $rustDir -PathType Container)) {
|
|
throw "Rust project not found at $rustDir"
|
|
}
|
|
|
|
if (-not (Get-Command cargo -ErrorAction SilentlyContinue)) {
|
|
throw 'cargo not found. Install Rust from https://rustup.rs/'
|
|
}
|
|
|
|
$cargoBinDir = Get-CargoBinDir
|
|
$builtBinary = Join-Path $rustDir 'target\release\lean-ctx.exe'
|
|
$installedBinary = Join-Path $cargoBinDir 'lean-ctx.exe'
|
|
|
|
Write-Host 'lean-ctx Windows installer'
|
|
Write-Host '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'
|
|
Write-Host 'Mode: build from source'
|
|
Write-Host ''
|
|
Write-Host 'Building lean-ctx (release)...'
|
|
|
|
Push-Location $rustDir
|
|
try {
|
|
& cargo build --release
|
|
}
|
|
finally {
|
|
Pop-Location
|
|
}
|
|
|
|
if (-not (Test-Path $builtBinary -PathType Leaf)) {
|
|
throw "Build failed - binary not found at $builtBinary"
|
|
}
|
|
|
|
Write-Host "Built: $builtBinary"
|
|
|
|
if ($BuildOnly) {
|
|
Write-Host 'Done (build only).'
|
|
exit 0
|
|
}
|
|
|
|
New-Item -ItemType Directory -Path $cargoBinDir -Force | Out-Null
|
|
|
|
$tempBinary = Join-Path $cargoBinDir ('.lean-ctx.new.' + $PID + '.exe')
|
|
Copy-Item -Path $builtBinary -Destination $tempBinary -Force
|
|
Stop-RunningLeanCtx
|
|
Move-Item -Path $tempBinary -Destination $installedBinary -Force
|
|
|
|
Write-Host "Installed: $installedBinary"
|
|
|
|
$pathEntries = @($env:Path -split ';' | Where-Object { $_ })
|
|
if ($pathEntries -notcontains $cargoBinDir) {
|
|
Write-Host ''
|
|
Write-Warning "$cargoBinDir is not in your PATH."
|
|
Write-Host 'Add it to your user PATH, then restart your shell.'
|
|
}
|
|
|
|
Write-Host ''
|
|
Write-Host 'Done! Verify with: lean-ctx --version' |