Skip to content

Commit 4974f2e

Browse files
committed
Adding support for UpdateAssemblyInfo taking a specific filename
1 parent a4b40aa commit 4974f2e

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

GitVersionExe/ArgumentParser.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ public static Arguments ParseArguments(List<string> commandLineArguments)
128128
{
129129
arguments.UpdateAssemblyInfo = false;
130130
}
131+
else if (!IsSwitchArgument(value))
132+
{
133+
arguments.UpdateAssemblyInfo = true;
134+
arguments.UpdateAssemblyInfoFileName = value;
135+
}
131136
else
132137
{
133138
arguments.UpdateAssemblyInfo = true;
@@ -159,6 +164,11 @@ public static Arguments ParseArguments(List<string> commandLineArguments)
159164
return arguments;
160165
}
161166

167+
static bool IsSwitchArgument(string value)
168+
{
169+
return value != null && value.StartsWith("-") || value.StartsWith("/");
170+
}
171+
162172
static bool IsSwitch(string switchName, string value)
163173
{
164174
if (value.StartsWith("-"))

GitVersionExe/Arguments.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ public Arguments()
2828
public string ExecArgs;
2929

3030
public bool UpdateAssemblyInfo;
31+
public string UpdateAssemblyInfoFileName;
3132
}
3233
}

Tests/ArgumentParserTests.cs

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,37 @@ public void Unknown_argument_should_throw()
165165
Assert.AreEqual("Could not parse command line parameter '-x'.", exception.Message);
166166
}
167167

168+
[TestCase("-updateAssemblyInfo true")]
169+
[TestCase("-updateAssemblyInfo 1")]
170+
[TestCase("-updateAssemblyInfo -proj foo.sln")]
171+
public void update_assembly_info_true(string command)
172+
{
173+
var arguments = ArgumentParser.ParseArguments(command);
174+
arguments.UpdateAssemblyInfo.ShouldBe(true);
175+
}
176+
177+
[TestCase("-updateAssemblyInfo false")]
178+
[TestCase("-updateAssemblyInfo 0")]
179+
public void update_assembly_info_false(string command)
180+
{
181+
var arguments = ArgumentParser.ParseArguments(command);
182+
arguments.UpdateAssemblyInfo.ShouldBe(false);
183+
}
184+
185+
[Test]
186+
public void update_assembly_info_with_filename()
187+
{
188+
var arguments = ArgumentParser.ParseArguments("-updateAssemblyInfo CommonAssemblyInfo.cs");
189+
arguments.UpdateAssemblyInfo.ShouldBe(true);
190+
arguments.UpdateAssemblyInfoFileName.ShouldBe("CommonAssemblyInfo.cs");
191+
}
192+
168193
[Test]
169-
public void update_assembly_info()
194+
public void update_assembly_info_with_relative_filename()
170195
{
171-
var arguments = ArgumentParser.ParseArguments("-updateAssemblyInfo -proj foo.sln");
196+
var arguments = ArgumentParser.ParseArguments("-updateAssemblyInfo ..\\..\\CommonAssemblyInfo.cs");
172197
arguments.UpdateAssemblyInfo.ShouldBe(true);
198+
arguments.UpdateAssemblyInfoFileName.ShouldBe("..\\..\\CommonAssemblyInfo.cs");
173199
}
174200

175201
[Test]

0 commit comments

Comments
 (0)