Skip to content

Commit 4a6dccd

Browse files
committed
Merge pull request #315 from dazinator/dev
#314
2 parents 74a0530 + a165d2f commit 4a6dccd

File tree

5 files changed

+44
-3
lines changed

5 files changed

+44
-3
lines changed

GitVersionExe.Tests/ArgumentParserTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,23 @@ public void update_assembly_info_with_relative_filename()
198198
arguments.UpdateAssemblyInfoFileName.ShouldBe("..\\..\\CommonAssemblyInfo.cs");
199199
}
200200

201+
[Test]
202+
public void update_assembly_info_with_assembly_version_format()
203+
{
204+
var arguments = ArgumentParser.ParseArguments("-updateAssemblyInfo true -assemblyVersionFormat MajorMinorPatch");
205+
arguments.UpdateAssemblyInfo.ShouldBe(true);
206+
arguments.AssemblyVersionFormat.ShouldBe("MajorMinorPatch");
207+
}
208+
209+
[Test]
210+
public void update_assembly_info_with_filename_and_assembly_version_format()
211+
{
212+
var arguments = ArgumentParser.ParseArguments("-updateAssemblyInfo CommonAssemblyInfo.cs -assemblyVersionFormat MajorMinorPatch");
213+
arguments.UpdateAssemblyInfo.ShouldBe(true);
214+
arguments.AssemblyVersionFormat.ShouldBe("MajorMinorPatch");
215+
arguments.UpdateAssemblyInfoFileName.ShouldBe("CommonAssemblyInfo.cs");
216+
}
217+
201218
[Test]
202219
public void can_log_to_console()
203220
{

GitVersionExe/ArgumentParser.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ public static Arguments ParseArguments(List<string> commandLineArguments)
141141
continue;
142142
}
143143

144+
if (IsSwitch("assemblyversionformat", name))
145+
{
146+
arguments.AssemblyVersionFormat = value;
147+
continue;
148+
}
149+
144150
if ((IsSwitch("v", name)) && VersionParts.Contains(value.ToLower()))
145151
{
146152
arguments.VersionPart = value.ToLower();

GitVersionExe/Arguments.cs

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

3030
public bool UpdateAssemblyInfo;
3131
public string UpdateAssemblyInfoFileName;
32+
public string AssemblyVersionFormat;
3233
}
3334
}

GitVersionExe/AssemblyInfoFileUpdate.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,16 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, Dictionar
3131
});
3232
cleanupBackupTasks.Add(() => fileSystem.Delete(backupAssemblyInfo));
3333

34-
var assemblyVersion = string.Format("{0}.{1}.0.0", variables[VariableProvider.Major], variables[VariableProvider.Minor]);
34+
string assemblyVersion;
35+
if (!string.IsNullOrWhiteSpace(args.AssemblyVersionFormat))
36+
{
37+
assemblyVersion = variables[args.AssemblyVersionFormat];
38+
}
39+
else
40+
{
41+
assemblyVersion = string.Format("{0}.{1}.0.0", variables[VariableProvider.Major], variables[VariableProvider.Minor]);
42+
}
43+
3544
var assemblyInfoVersion = variables[VariableProvider.InformationalVersion];
3645
var assemblyFileVersion = variables[VariableProvider.AssemblySemVer];
3746
var fileContents = fileSystem.ReadAllText(assemblyInfoFile)

GitVersionExe/Program.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ static void Main()
2525
{
2626
// Dump log to console if we fail to complete successfully
2727
Console.Write(log.ToString());
28-
}
29-
28+
}
29+
3030
Environment.Exit(exitCode);
3131
}
3232

@@ -114,6 +114,14 @@ static int Run()
114114
}
115115
}
116116

117+
if (!string.IsNullOrWhiteSpace(arguments.AssemblyVersionFormat) && !variables.ContainsKey(arguments.AssemblyVersionFormat))
118+
{
119+
Console.WriteLine("Unrecognised AssemblyVersionFormat argument. Valid values for this argument are: {0}", string.Join(" ", variables.Keys.OrderBy(a => a)));
120+
HelpWriter.Write();
121+
return 1;
122+
}
123+
124+
117125
using (var assemblyInfoUpdate = new AssemblyInfoFileUpdate(arguments, workingDirectory, variables, new FileSystem()))
118126
{
119127
var execRun = RunExecCommandIfNeeded(arguments, workingDirectory, variables);

0 commit comments

Comments
 (0)