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/brain exit $LASTEXITCODE