Skip to content

Commit 1a7858a

Browse files
gfraiteurclaude
andcommitted
Fix environment variable handling for Unix platforms in DockerBuild.ps1.
On Unix (Linux/macOS), Windows-specific environment variables like $env:USERPROFILE and $env:LOCALAPPDATA don't exist, causing null parameter errors. Fixed: - New-EnvJson function: Use $env:HOME instead of $env:USERPROFILE for NuGet packages path on Unix - New-ClaudeEnvJson function: Use $env:HOME instead of $env:USERPROFILE for NuGet packages path on Unix - Claude mode: Use $env:HOME instead of $env:USERPROFILE for hostUserProfile on Unix All paths now properly detect platform and use appropriate environment variables: - Windows: $env:USERPROFILE, $env:LOCALAPPDATA - Unix: $env:HOME Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 2431824 commit 1a7858a

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

DockerBuild.ps1

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,14 @@ function New-EnvJson
9696
$nugetPackages = $env:NUGET_PACKAGES
9797
if ( [string]::IsNullOrEmpty($nugetPackages))
9898
{
99-
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
99+
if ($IsUnix)
100+
{
101+
$nugetPackages = Join-Path $env:HOME ".nuget/packages"
102+
}
103+
else
104+
{
105+
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
106+
}
100107
}
101108
$envVariables["NUGET_PACKAGES"] = $nugetPackages
102109
}
@@ -204,7 +211,14 @@ function New-ClaudeEnvJson
204211
$nugetPackages = $env:NUGET_PACKAGES
205212
if ( [string]::IsNullOrEmpty($nugetPackages))
206213
{
207-
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
214+
if ($IsUnix)
215+
{
216+
$nugetPackages = Join-Path $env:HOME ".nuget/packages"
217+
}
218+
else
219+
{
220+
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
221+
}
208222
}
209223
$claudeEnv["NUGET_PACKAGES"] = $nugetPackages
210224

@@ -1080,7 +1094,7 @@ if (-not $BuildImage)
10801094
Write-Host "Running Claude in the container." -ForegroundColor Green
10811095

10821096
# Container will have its own Claude profile (no mount, no copy from host)
1083-
$hostUserProfile = $env:USERPROFILE
1097+
$hostUserProfile = if ($IsUnix) { $env:HOME } else { $env:USERPROFILE }
10841098

10851099
# Convert volume mappings to docker args format (interleave "-v" flags)
10861100
$volumeArgs = @()

src/PostSharp.Engineering.BuildTools/Resources/DockerBuild.ps1

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,14 @@ function New-EnvJson
9696
$nugetPackages = $env:NUGET_PACKAGES
9797
if ( [string]::IsNullOrEmpty($nugetPackages))
9898
{
99-
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
99+
if ($IsUnix)
100+
{
101+
$nugetPackages = Join-Path $env:HOME ".nuget/packages"
102+
}
103+
else
104+
{
105+
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
106+
}
100107
}
101108
$envVariables["NUGET_PACKAGES"] = $nugetPackages
102109
}
@@ -204,7 +211,14 @@ function New-ClaudeEnvJson
204211
$nugetPackages = $env:NUGET_PACKAGES
205212
if ( [string]::IsNullOrEmpty($nugetPackages))
206213
{
207-
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
214+
if ($IsUnix)
215+
{
216+
$nugetPackages = Join-Path $env:HOME ".nuget/packages"
217+
}
218+
else
219+
{
220+
$nugetPackages = Join-Path $env:USERPROFILE ".nuget\packages"
221+
}
208222
}
209223
$claudeEnv["NUGET_PACKAGES"] = $nugetPackages
210224

@@ -1080,7 +1094,7 @@ if (-not $BuildImage)
10801094
Write-Host "Running Claude in the container." -ForegroundColor Green
10811095

10821096
# Container will have its own Claude profile (no mount, no copy from host)
1083-
$hostUserProfile = $env:USERPROFILE
1097+
$hostUserProfile = if ($IsUnix) { $env:HOME } else { $env:USERPROFILE }
10841098

10851099
# Convert volume mappings to docker args format (interleave "-v" flags)
10861100
$volumeArgs = @()

0 commit comments

Comments
 (0)