[svn] r7272: nemerle/trunk: macros/Util.n ncc/misc/AssemblyInfo.n tools/msbuild-task/MSBuildTask.n

nazgul svnadmin at nemerle.org
Mon Jan 15 23:29:09 CET 2007


Log:
SVN attribute

Author: nazgul
Date: Mon Jan 15 23:29:01 2007
New Revision: 7272

Modified:
   nemerle/trunk/macros/Util.n
   nemerle/trunk/ncc/misc/AssemblyInfo.n
   nemerle/trunk/tools/msbuild-task/MSBuildTask.n

Modified: nemerle/trunk/macros/Util.n
==============================================================================
--- nemerle/trunk/macros/Util.n	(original)
+++ nemerle/trunk/macros/Util.n	Mon Jan 15 23:29:01 2007
@@ -255,6 +255,50 @@
     }
   }
 
+  [Nemerle.MacroUsage (Nemerle.MacroPhase.BeforeInheritance,
+                       Nemerle.MacroTargets.Assembly)]
+  macro AssemblyVersionFromSVN (val : string) {
+    def rev () {
+      try {
+        def svn = System.Diagnostics.Process();
+        svn.StartInfo.FileName = "svn";
+        svn.StartInfo.Arguments = "info";
+        svn.StartInfo.CreateNoWindow = true;
+        svn.StartInfo.UseShellExecute = false;
+        svn.StartInfo.RedirectStandardOutput = true;
+        svn.StartInfo.RedirectStandardError = true;
+        _ = svn.Start();
+        def stdout = svn.StandardOutput.ReadToEnd(); 
+        svn.WaitForExit ();
+        if (svn.ExitCode == 0) {
+          foreach (l in stdout.Split ('\n'))
+            when (l.StartsWith ("Revision"))
+              Nemerle.Text.regexp (match (l)  {
+                | @".* (?<num : int>\d+).*" => Nemerle.Imperative.Return (num)
+                | _ => ()
+              });
+          -1
+        }
+        else -2
+      }
+      catch {
+        | _ => -3
+      }
+    }
+    def svnidx = val.IndexOf ("SVN", System.StringComparison.InvariantCultureIgnoreCase);
+    def val = 
+      if (svnidx != -1) {
+        def svnrev = rev ();
+        if (svnrev < 0)
+          val.Substring (0, svnidx) + "*" + val.Substring (svnidx + 3)
+        else
+          val.Substring (0, svnidx) + svnrev.ToString () + val.Substring (svnidx + 3)
+      }
+      else val;
+    Nemerle.Macros.Manager().Hierarchy.AddAssemblyAttribute (Nemerle.Macros.Manager().CoreEnv, 
+      <[ System.Reflection.AssemblyVersion ($(val : string)) ]>);
+  }
+
 
   [Nemerle.MacroUsage (Nemerle.MacroPhase.WithTypedMembers,
                        Nemerle.MacroTargets.Class,

Modified: nemerle/trunk/ncc/misc/AssemblyInfo.n
==============================================================================
--- nemerle/trunk/ncc/misc/AssemblyInfo.n	(original)
+++ nemerle/trunk/ncc/misc/AssemblyInfo.n	Mon Jan 15 23:29:01 2007
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2004 The University of Wroclaw.
+ * Copyright (c) 2003-2007 The University of Wroclaw.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
 [assembly: System.Reflection.AssemblyDescription("Nemerle (http://nemerle.org) Language Compiler Library")]
 [assembly: System.Reflection.AssemblyCompany("University of Wroclaw")]
 [assembly: System.Reflection.AssemblyProduct("Nemerle Language Compiler")]
-[assembly: System.Reflection.AssemblyCopyright("Copyright @ University of Wroclaw 2003-2005")]
+[assembly: System.Reflection.AssemblyCopyright("Copyright @ University of Wroclaw 2003-2007")]
 
 [assembly: System.Reflection.AssemblyVersion("0.9.3.*")]
 [assembly: System.Runtime.InteropServices.ComVisible (false)]

Modified: nemerle/trunk/tools/msbuild-task/MSBuildTask.n
==============================================================================
--- nemerle/trunk/tools/msbuild-task/MSBuildTask.n	(original)
+++ nemerle/trunk/tools/msbuild-task/MSBuildTask.n	Mon Jan 15 23:29:01 2007
@@ -39,6 +39,8 @@
 
 using Nemerle.Utility;
 
+[assembly: AssemblyVersionFromSVN ("0.9.3.SVN")]
+
 namespace Nemerle.Tools.MSBuildTask
 {
   [Record]



More information about the svn mailing list