summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs')
-rw-r--r--src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs
index 1d60ca4..9818885 100644
--- a/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs
+++ b/src/DotNetOpenAuth.BuildTasks/GetBuildVersion.cs
@@ -10,6 +10,11 @@ using Microsoft.Build.Utilities;
namespace DotNetOpenAuth.BuildTasks {
public class GetBuildVersion : Task {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="GetBuildVersion"/> class.
+ /// </summary>
+ public GetBuildVersion() {
+ }
/// <summary>
/// Gets the version string to use in the compiled assemblies.
@@ -18,6 +23,12 @@ namespace DotNetOpenAuth.BuildTasks {
public string Version { get; private set; }
/// <summary>
+ /// Gets the version string to use in the official release name (lacks revision number).
+ /// </summary>
+ [Output]
+ public string SimpleVersion { get; private set; }
+
+ /// <summary>
/// Gets the Git revision control commit id for HEAD (the current source code version).
/// </summary>
[Output]
@@ -37,9 +48,11 @@ namespace DotNetOpenAuth.BuildTasks {
public override bool Execute() {
try {
Version typedVersion = ReadVersionFromFile();
- typedVersion = new Version(typedVersion.Major, typedVersion.Minor, typedVersion.Build, CalculateJDate(DateTime.Now));
- Version = typedVersion.ToString();
+ SimpleVersion = typedVersion.ToString();
+ var fullVersion = new Version(typedVersion.Major, typedVersion.Minor, typedVersion.Build, CalculateJDate(DateTime.Now));
+ Version = fullVersion.ToString();
+
this.GitCommitId = GetGitHeadCommitId();
} catch (ArgumentOutOfRangeException ex) {
Log.LogErrorFromException(ex);
@@ -59,12 +72,13 @@ namespace DotNetOpenAuth.BuildTasks {
// First try asking Git for the HEAD commit id
try {
string cmdPath = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe");
- ProcessStartInfo psi = new ProcessStartInfo(cmdPath, "/c git rev-parse HEAD");
- psi.WindowStyle = ProcessWindowStyle.Hidden;
- psi.CreateNoWindow = true;
- psi.RedirectStandardOutput = true;
- psi.UseShellExecute = false;
- Process git = Process.Start(psi);
+ var psi = new ProcessStartInfo(cmdPath, "/c git rev-parse HEAD") {
+ WindowStyle = ProcessWindowStyle.Hidden,
+ CreateNoWindow = true,
+ RedirectStandardOutput = true,
+ UseShellExecute = false
+ };
+ var git = Process.Start(psi);
commitId = git.StandardOutput.ReadLine();
git.WaitForExit();
if (git.ExitCode != 0) {
@@ -102,6 +116,7 @@ namespace DotNetOpenAuth.BuildTasks {
} catch (DirectoryNotFoundException) {
}
+ commitId = commitId ?? String.Empty; // doubly-be sure it's not null, since in some error cases it can be.
return commitId.Trim();
}