Fixes: 1) Add `-Force` flag to `New-Item` to overwrite environment variables if they already exist; Extra: 1) Remove unused spinner logic from script for better readability and maintainability.
74 lines
1.8 KiB
PowerShell
74 lines
1.8 KiB
PowerShell
#!/usr/bin/env pwsh
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
if (-not (Test-Path -Path ".\evibes" -PathType Container))
|
|
{
|
|
Write-Host "❌ Please run this script from the project's root (where the 'evibes' directory lives)." -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
$purple = "`e[38;2;121;101;209m"
|
|
$reset = "`e[0m"
|
|
|
|
$artPath = Join-Path (Split-Path -Parent $MyInvocation.MyCommand.Definition) '..\ASCII_ART_EVIBES'
|
|
if (-not (Test-Path $artPath))
|
|
{
|
|
Write-Host "❌ Could not find ASCII art at $artPath" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
$art = Get-Content -Raw -Path $artPath
|
|
$art -split "`r?`n" | ForEach-Object {
|
|
Write-Host "$purple$_$reset"
|
|
}
|
|
|
|
Write-Host "`n by WISELESS TEAM`n" -ForegroundColor Gray
|
|
|
|
$envFile = '.env'
|
|
|
|
if (-not (Test-Path $envFile))
|
|
{
|
|
Write-Error ".env file not found in the current directory."
|
|
exit 1
|
|
}
|
|
|
|
$envVars = @{ }
|
|
|
|
Get-Content $envFile | ForEach-Object {
|
|
$line = $_.Trim()
|
|
if ($line -eq '' -or $line.StartsWith('#'))
|
|
{
|
|
return
|
|
}
|
|
if ($line -notmatch '=')
|
|
{
|
|
return
|
|
}
|
|
|
|
$m = [Regex]::Match($line, '^\s*([^=]+?)\s*=\s*(.*)$')
|
|
if (-not $m.Success)
|
|
{
|
|
return
|
|
}
|
|
|
|
$key = $m.Groups[1].Value
|
|
$value = $m.Groups[2].Value
|
|
|
|
if (( $value.StartsWith('"') -and $value.EndsWith('"')) -or
|
|
( $value.StartsWith("'") -and $value.EndsWith("'")))
|
|
{
|
|
$value = $value.Substring(1, $value.Length - 2)
|
|
}
|
|
|
|
New-Item -Force -Path Env:\$key -Value $value | Out-Null
|
|
$envVars[$key] = $value
|
|
}
|
|
|
|
if ($envVars.Count -gt 0)
|
|
{
|
|
$formatted = ($envVars.GetEnumerator() | Sort-Object Name | ForEach-Object {
|
|
"$( $_.Key )=$( $_.Value )"
|
|
}) -join ';'
|
|
Write-Host $formatted
|
|
}
|