46 lines
1.1 KiB
PowerShell
46 lines
1.1 KiB
PowerShell
param(
|
|
[switch]$NoEnv
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
Set-StrictMode -Version Latest
|
|
|
|
$ProjectRoot = $PSScriptRoot
|
|
Set-Location $ProjectRoot
|
|
|
|
function Import-DotEnv {
|
|
param([Parameter(Mandatory = $true)][string]$Path)
|
|
|
|
Get-Content -LiteralPath $Path | ForEach-Object {
|
|
$line = $_.Trim()
|
|
if (-not $line -or $line.StartsWith("#")) { return }
|
|
|
|
$parts = $line.Split("=", 2)
|
|
if ($parts.Count -ne 2) { return }
|
|
|
|
$name = $parts[0].Trim()
|
|
$value = $parts[1].Trim()
|
|
if (-not $name) { return }
|
|
|
|
if (($value.StartsWith('"') -and $value.EndsWith('"')) -or
|
|
($value.StartsWith("'") -and $value.EndsWith("'"))) {
|
|
$value = $value.Substring(1, $value.Length - 2)
|
|
}
|
|
|
|
[Environment]::SetEnvironmentVariable($name, $value, "Process")
|
|
}
|
|
}
|
|
|
|
if (-not $NoEnv) {
|
|
$envFile = Join-Path $ProjectRoot ".env"
|
|
if (Test-Path -LiteralPath $envFile) {
|
|
Import-DotEnv -Path $envFile
|
|
}
|
|
else {
|
|
Write-Warning ".env nicht gefunden. Es werden vorhandene Umgebungsvariablen und Programm-Defaults verwendet."
|
|
}
|
|
}
|
|
|
|
go run ./cmd/server
|
|
exit $LASTEXITCODE
|