24 lines
691 B
PowerShell
24 lines
691 B
PowerShell
param(
|
|
[string]$EnvPath = "$PSScriptRoot/../.env",
|
|
[switch]$Persist
|
|
)
|
|
|
|
if (-not (Test-Path -LiteralPath $EnvPath)) {
|
|
throw "Cannot find .env file at $EnvPath"
|
|
}
|
|
|
|
Get-Content -LiteralPath $EnvPath |
|
|
Where-Object { $_ -and $_ -notmatch '^\s*#' } |
|
|
ForEach-Object {
|
|
$parts = $_ -split '=', 2
|
|
if ($parts.Length -eq 2) {
|
|
$key = $parts[0].Trim()
|
|
$value = $parts[1].Trim()
|
|
[Environment]::SetEnvironmentVariable($key, $value, 'Process')
|
|
if ($Persist) {
|
|
[Environment]::SetEnvironmentVariable($key, $value, 'User')
|
|
}
|
|
}
|
|
}
|
|
|
|
Write-Host "Loaded environment variables from $EnvPath" |