Skip to content

Commit 1006bde

Browse files
TheAngryByrdxperiandri
authored andcommitted
Allow RunSettingsArguments to be set
1 parent d8f9961 commit 1006bde

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

src/app/Fake.DotNet.Cli/DotNet.fs

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,21 +1173,33 @@ module DotNet =
11731173

11741174
MSBuild.addBinaryLogger (common.DotNetCliPath + " msbuild") callMsBuildExe args disableFakeBinLog
11751175

1176-
let internal execWithBinLog project common command args msBuildArgs =
1176+
let internal buildAfterArgs args afterArgs =
1177+
[ yield! args
1178+
match afterArgs with
1179+
| Some a ->
1180+
yield "--"
1181+
yield a
1182+
| None -> () ]
1183+
1184+
let internal execWithBinLog project common command args msBuildArgs afterArgs =
11771185
let msbuildArgList = MSBuild.fromCliArguments msBuildArgs
11781186

11791187
let binLogPath, args =
11801188
addBinaryLogger msBuildArgs.DisableInternalBinLog (args @ msbuildArgList) common
11811189

1190+
let args = buildAfterArgs args afterArgs
1191+
11821192
let result = execArgsList (fun _ -> common) command args
11831193
MSBuild.handleAfterRun (sprintf "dotnet %s" command) binLogPath result.ExitCode project
11841194

1185-
let internal tryExecWithBinLog project common command args msBuildArgs =
1195+
let internal tryExecWithBinLog project common command args msBuildArgs afterArgs =
11861196
let msbuildArgList = MSBuild.fromCliArguments msBuildArgs
11871197

11881198
let binLogPath, args =
11891199
addBinaryLogger msBuildArgs.DisableInternalBinLog (args @ msbuildArgList) common
11901200

1201+
let args = buildAfterArgs args afterArgs
1202+
11911203
let result = execArgsList (fun _ -> common) command args
11921204

11931205
try
@@ -1230,7 +1242,7 @@ module DotNet =
12301242

12311243
let param = MSBuildOptions.Create() |> setParams
12321244
let args = [ project ]
1233-
execWithBinLog project param.Common "msbuild" args param.MSBuildParams
1245+
execWithBinLog project param.Common "msbuild" args param.MSBuildParams None
12341246
__.MarkSuccess()
12351247

12361248
// TODO: Make this API public? change return code?
@@ -1239,7 +1251,9 @@ module DotNet =
12391251

12401252
let param = MSBuildOptions.Create() |> setParams
12411253
let args = [ project ]
1242-
let r = tryExecWithBinLog project param.Common "msbuild" args param.MSBuildParams
1254+
1255+
let r =
1256+
tryExecWithBinLog project param.Common "msbuild" args param.MSBuildParams None
12431257
//__.MarkSuccess()
12441258
r
12451259

@@ -1326,7 +1340,7 @@ module DotNet =
13261340
use __ = Trace.traceTask "DotNet:restore" project
13271341
let param = RestoreOptions.Create() |> setParams
13281342
let args = project :: buildRestoreArgs param
1329-
execWithBinLog project param.Common "restore" args param.MSBuildParams
1343+
execWithBinLog project param.Common "restore" args param.MSBuildParams None
13301344
__.MarkSuccess()
13311345

13321346
/// build configuration
@@ -1463,7 +1477,7 @@ module DotNet =
14631477
use __ = Trace.traceTask "DotNet:pack" project
14641478
let param = PackOptions.Create() |> setParams
14651479
let args = project :: buildPackArgs param
1466-
execWithBinLog project param.Common "pack" args param.MSBuildParams
1480+
execWithBinLog project param.Common "pack" args param.MSBuildParams None
14671481
__.MarkSuccess()
14681482

14691483
/// <summary>
@@ -1580,7 +1594,7 @@ module DotNet =
15801594
use __ = Trace.traceTask "DotNet:publish" project
15811595
let param = PublishOptions.Create() |> setParams
15821596
let args = project :: buildPublishArgs param
1583-
execWithBinLog project param.Common "publish" args param.MSBuildParams
1597+
execWithBinLog project param.Common "publish" args param.MSBuildParams None
15841598
__.MarkSuccess()
15851599

15861600
/// <summary>
@@ -1670,7 +1684,7 @@ module DotNet =
16701684
use __ = Trace.traceTask "DotNet:build" project
16711685
let param = BuildOptions.Create() |> setParams
16721686
let args = project :: buildBuildArgs param
1673-
execWithBinLog project param.Common "build" args param.MSBuildParams
1687+
execWithBinLog project param.Common "build" args param.MSBuildParams None
16741688
__.MarkSuccess()
16751689

16761690
/// <summary>
@@ -1821,7 +1835,7 @@ module DotNet =
18211835
use __ = Trace.traceTask "DotNet:test" project
18221836
let param = TestOptions.Create() |> setParams
18231837
let args = project :: buildTestArgs param
1824-
execWithBinLog project param.Common "test" args param.MSBuildParams
1838+
execWithBinLog project param.Common "test" args param.MSBuildParams param.RunSettingsArguments
18251839
__.MarkSuccess()
18261840

18271841
let internal buildNugetPushArgs (param: NuGet.NuGetPushParams) =

src/test/Fake.Core.UnitTests/Fake.DotNet.Cli.fs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,22 @@ let tests =
129129

130130
let expected = "--uninstall my-awesome-template"
131131

132-
Expect.equal cli expected "New --uninstall args generated correctly." ]
132+
Expect.equal cli expected "New --uninstall args generated correctly."
133+
134+
testCase "Test buildAfterArgs with no after args"
135+
<| fun _ ->
136+
let expected = "hello"
137+
let cli = DotNet.buildAfterArgs [ "hello" ] None |> Args.toWindowsCommandLine
138+
139+
Expect.equal cli expected "Empty after args."
140+
141+
testCase "Test buildAfterArgs with after args"
142+
<| fun _ ->
143+
let expected = "hello -- lol=foo"
144+
145+
let cli =
146+
DotNet.buildAfterArgs [ "hello" ] (Some "lol=foo") |> Args.toWindowsCommandLine
147+
148+
Expect.equal cli expected "Empty after args."
149+
150+
]

0 commit comments

Comments
 (0)