docs: Update README and documentation for lxs multi-tool across Linux and Windows platforms.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<#
|
||||
LXS - platform dispatcher (Windows side)
|
||||
|
||||
Thin shim kept at the repo root so the documented one-liner stays short and
|
||||
stable while the real implementation lives in windows\lxs.ps1:
|
||||
|
||||
irm https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.ps1 | iex
|
||||
& ([scriptblock]::Create((irm https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.ps1))) setup
|
||||
|
||||
Repo: https://git.hyko.cx/hykocx/lxs
|
||||
License: MIT
|
||||
#>
|
||||
|
||||
$LxsShimArgs = @($args)
|
||||
|
||||
$LxsRepoUrl = 'https://git.hyko.cx/hykocx/lxs'
|
||||
$LxsBranch = if ($env:LXS_BRANCH) { $env:LXS_BRANCH } else { 'main' }
|
||||
$LxsRawBase = if ($env:LXS_RAW_BASE) { $env:LXS_RAW_BASE } else { "$LxsRepoUrl/raw/branch/$LxsBranch" }
|
||||
$LxsPlatformDir = 'windows'
|
||||
|
||||
# Running this shim under pwsh on Linux/macOS is a mistake worth catching.
|
||||
if ($PSVersionTable.PSVersion.Major -ge 6 -and
|
||||
-not [System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform(
|
||||
[System.Runtime.InteropServices.OSPlatform]::Windows)) {
|
||||
Write-Error 'lxs.ps1 is the Windows entrypoint. On Linux or macOS, use lxs.sh instead.'
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Locate a sibling windows\lxs.ps1 (repo checkout or installed layout).
|
||||
$LxsSelfDir = $PSScriptRoot
|
||||
if (-not $LxsSelfDir -and $MyInvocation.MyCommand.Path) {
|
||||
$LxsSelfDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
}
|
||||
|
||||
if ($LxsSelfDir) {
|
||||
$local = Join-Path $LxsSelfDir "$LxsPlatformDir\lxs.ps1"
|
||||
if (Test-Path $local) {
|
||||
& $local @LxsShimArgs
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
}
|
||||
|
||||
# No files on disk — we were piped from irm. Fetch the platform entrypoint.
|
||||
$temp = Join-Path $env:TEMP ("lxs.entrypoint.{0}.ps1" -f [guid]::NewGuid().ToString('N').Substring(0, 8))
|
||||
try {
|
||||
Invoke-WebRequest -Uri "$LxsRawBase/$LxsPlatformDir/lxs.ps1" -OutFile $temp `
|
||||
-UseBasicParsing -Headers @{ 'Cache-Control' = 'no-cache' } -ErrorAction Stop
|
||||
} catch {
|
||||
Write-Error "lxs: failed to fetch $LxsRawBase/$LxsPlatformDir/lxs.ps1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
try {
|
||||
$global:LASTEXITCODE = 0
|
||||
& $temp @LxsShimArgs
|
||||
$code = $LASTEXITCODE
|
||||
} finally {
|
||||
Remove-Item $temp -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
exit $code
|
||||
Reference in New Issue
Block a user