This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$ConfigPath = (Join-Path (Split-Path -Parent $PSScriptRoot) "server-deploy.conf")
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$secret = Read-Host "DeepSeek official API Key" -AsSecureString
|
||||
$pointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secret)
|
||||
try {
|
||||
$plain = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($pointer)
|
||||
if (-not $plain.StartsWith("sk-") -or $plain.Length -lt 20) {
|
||||
throw "The value does not look like a DeepSeek API key. Nothing was changed."
|
||||
}
|
||||
$lines = if (Test-Path -LiteralPath $ConfigPath) {
|
||||
@(Get-Content -LiteralPath $ConfigPath)
|
||||
} else {
|
||||
@()
|
||||
}
|
||||
$replacement = "DEEPSEEK_API_KEY=$plain"
|
||||
$found = $false
|
||||
$updated = @($lines | ForEach-Object {
|
||||
if ($_ -match '^DEEPSEEK_API_KEY=') {
|
||||
$found = $true
|
||||
$replacement
|
||||
} else {
|
||||
$_
|
||||
}
|
||||
})
|
||||
if (-not $found) {
|
||||
$updated += $replacement
|
||||
}
|
||||
Set-Content -LiteralPath $ConfigPath -Value $updated -Encoding UTF8
|
||||
Write-Host "DeepSeek key saved to the ignored local deployment config. The key was not printed." -ForegroundColor Green
|
||||
} finally {
|
||||
if ($pointer -ne [IntPtr]::Zero) {
|
||||
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($pointer)
|
||||
}
|
||||
$plain = $null
|
||||
}
|
||||
Reference in New Issue
Block a user