@@ -19,19 +19,18 @@ public static void EnsureToolRequirements(INukeBuild build, IReadOnlyCollection<
19
19
{
20
20
var requirements = build . GetType ( ) . GetCustomAttributes < RequiresAttribute > ( ) . Select ( x => x . GetRequirement ( ) )
21
21
. Concat ( executionPlan . SelectMany ( x => x . ToolRequirements ) ) . ToList ( ) ;
22
- var directory = build . TemporaryDirectory ;
23
22
24
- InstallNuGetPackages ( requirements . OfType < NuGetPackageRequirement > ( ) . ToList ( ) , directory ) ;
25
- InstallNpmPackages ( requirements . OfType < NpmPackageRequirement > ( ) . ToList ( ) , directory ) ;
26
- InstallAptGetPackages ( requirements . OfType < AptGetPackageRequirement > ( ) . ToList ( ) , directory ) ;
23
+ InstallNuGetPackages ( requirements . OfType < NuGetPackageRequirement > ( ) . ToList ( ) , build ) ;
24
+ InstallNpmPackages ( requirements . OfType < NpmPackageRequirement > ( ) . ToList ( ) , build ) ;
25
+ InstallAptGetPackages ( requirements . OfType < AptGetPackageRequirement > ( ) . ToList ( ) , build ) ;
27
26
}
28
27
29
- private static void InstallNuGetPackages ( IReadOnlyCollection < NuGetPackageRequirement > requirements , AbsolutePath directory )
28
+ private static void InstallNuGetPackages ( IReadOnlyCollection < NuGetPackageRequirement > requirements , INukeBuild build )
30
29
{
31
30
if ( requirements . Count == 0 )
32
31
return ;
33
32
34
- var projectFile = directory / "nuget.csproj" ;
33
+ var projectFile = build . TemporaryDirectory / "nuget.csproj" ;
35
34
NuGetToolPathResolver . NuGetPackagesConfigFile = projectFile ;
36
35
NuGetToolPathResolver . NuGetAssetsConfigFile = projectFile . Parent / "obj" / "project.assets.json" ;
37
36
@@ -45,8 +44,10 @@ private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequire
45
44
<TargetFramework>net8.0</TargetFramework>
46
45
</PropertyGroup>
47
46
47
+ <Import Project="{ build . BuildProjectFile } " />
48
+
48
49
<ItemGroup>
49
- { groupedPackages . Select ( x => $ """ <PackageDownload Include="{ x . Key } " Version="{ x . JoinSemicolon ( ) } " />""" ) . JoinNewLine ( ) }
50
+ { groupedPackages . Select ( x => $ """ <PackageDownload Include="{ x . Key } " Version="{ x . JoinSemicolon ( ) } " Exclude="@(PackageDownload)" />""" ) . JoinNewLine ( ) }
50
51
</ItemGroup>
51
52
52
53
</Project>
@@ -63,12 +64,12 @@ private static void InstallNuGetPackages(IReadOnlyCollection<NuGetPackageRequire
63
64
dotnet . Invoke ( $ "restore", workingDirectory : projectFile . Parent , logInvocation : false , logOutput : false ) ;
64
65
}
65
66
66
- private static void InstallNpmPackages ( IReadOnlyCollection < NpmPackageRequirement > requirements , AbsolutePath directory )
67
+ private static void InstallNpmPackages ( IReadOnlyCollection < NpmPackageRequirement > requirements , INukeBuild build )
67
68
{
68
69
if ( requirements . Count == 0 )
69
70
return ;
70
71
71
- var packageJsonFile = directory / "package.json" ;
72
+ var packageJsonFile = build . TemporaryDirectory / "package.json" ;
72
73
NpmToolPathResolver . NpmPackageJsonFile = packageJsonFile ;
73
74
74
75
var packages = requirements . OrderBy ( x => x . PackageId ) . ToList ( ) ;
@@ -92,15 +93,15 @@ private static void InstallNpmPackages(IReadOnlyCollection<NpmPackageRequirement
92
93
npm . Invoke ( "install" , workingDirectory : packageJsonFile . Parent , logInvocation : false , logOutput : false ) ;
93
94
}
94
95
95
- private static void InstallAptGetPackages ( IReadOnlyCollection < AptGetPackageRequirement > requirements , AbsolutePath directory )
96
+ private static void InstallAptGetPackages ( IReadOnlyCollection < AptGetPackageRequirement > requirements , INukeBuild build )
96
97
{
97
98
if ( requirements . Count == 0 )
98
99
return ;
99
100
100
101
var packages = requirements . OrderBy ( x => x . PackageId ) . ToList ( ) ;
101
102
Assert . True ( EnvironmentInfo . IsLinux , "AptGet is only available on Linux" ) ;
102
103
103
- var installScript = directory / "apt-get.sh" ;
104
+ var installScript = build . TemporaryDirectory / "apt-get.sh" ;
104
105
105
106
var content = $ """
106
107
apt-get update
0 commit comments