<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Golem.Recipes.NAnt/GRegexTask.cs</filename>
    </added>
    <added>
      <filename>Golem.Recipes.NAnt/GXmlPeekTask.cs</filename>
    </added>
    <added>
      <filename>Golem.Recipes.NAnt/Golem.Recipes.Nant.csproj</filename>
    </added>
    <added>
      <filename>Golem.Recipes.NAnt/NantRecipe.cs</filename>
    </added>
    <added>
      <filename>Golem.Recipes.NAnt/Properties/AssemblyInfo.cs</filename>
    </added>
    <added>
      <filename>Golem.Test/NantRecipeFixure.cs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -21,15 +21,16 @@ namespace Golem.Core
             cataloger = aCataloger;
         }
 
-        public void Run(Recipe recipe, Task task)
+
+        public void Run(Recipe recipe, Task task, params object[] parameters )
         {
-            //TODO: Tasks should run in their own appdomain. 
+            //TODO: Tasks should run in their own appdomain? 
             //      We need to create an app domain that has the 
             //      base dir the same as the target assembly
             
             var recipeInstance = Activator.CreateInstance(recipe.Class);
             SetContextualInformationIfInheritsRecipeBase(recipeInstance);
-            task.Method.Invoke(recipeInstance, null);
+            task.Method.Invoke(recipeInstance, parameters);
         }
 
         private void SetContextualInformationIfInheritsRecipeBase(object recipeInstance)
@@ -44,10 +45,13 @@ namespace Golem.Core
             
         }
 
+      
+
         //TODO: Run is Too long
         //TODO: Nesting depth is too deep
-        public void Run(string recipeName, string taskName)
+        public void Run(string recipeName, string taskName, params object[] para)
         {
+            
             if(cataloger.Recipes.Count==0)
                 cataloger.CatalogueRecipes();
 
@@ -61,9 +65,9 @@ namespace Golem.Core
                         {
                             foreach(var methodInfo in t.DependsOnMethods)
                             {
-                                Run(r, r.GetTaskForMethod(methodInfo));
+                                Run(r, r.GetTaskForMethod(methodInfo), para);
                             }
-                            Run(r, t);
+                            Run(r, t, para);
                             return;
                         }
                     }</diff>
      <filename>Golem.Core/TaskRunner.cs</filename>
    </modified>
    <modified>
      <diff>@@ -37,8 +37,17 @@ namespace Golem.Runner
                 var parts = args[0].Split(':');
                 var runner = new TaskRunner(finder);
                 
-                if(parts.Length == 2)
+                if(parts.Length == 2 &amp;&amp; args.Length == 1)
+                {
                     runner.Run(parts[0],parts[1]);
+                }
+                else if(parts.Length ==2 &amp;&amp; args.Length &gt; 1)
+                {
+                    //TODO: Tidy this up and refactor
+                    var dest = new string[args.Length-1];
+                    Array.Copy(args,1,dest,0,args.Length-1);
+                    runner.Run(parts[0],parts[1],dest);
+                }
                 else
                 {
                     Console.WriteLine(&quot;Type golem -? for help, or try one of the following tasks:\n&quot;);</diff>
      <filename>Golem.Runner/Program.cs</filename>
    </modified>
    <modified>
      <diff>@@ -118,4 +118,14 @@ namespace Golem.Test
             Console.WriteLine(this.AllRecipes.Count);
         }
     }
+
+    [Recipe]
+    public class Demo5Recipe
+    {
+        [Task]
+        public void Foo(string a, string b)
+        {
+            Console.WriteLine(&quot;{0},{1}&quot;, a, b);
+        }
+    }
 }
\ No newline at end of file</diff>
      <filename>Golem.Test/DemoRecipe.cs</filename>
    </modified>
    <modified>
      <diff>@@ -51,6 +51,7 @@
   &lt;ItemGroup&gt;
     &lt;Compile Include=&quot;DemoRecipe.cs&quot; /&gt;
     &lt;Compile Include=&quot;FinderConfigurationFixture.cs&quot; /&gt;
+    &lt;Compile Include=&quot;NantRecipeFixure.cs&quot; /&gt;
     &lt;Compile Include=&quot;RecipeDiscoveryFixture.cs&quot; /&gt;
     &lt;Compile Include=&quot;Properties\AssemblyInfo.cs&quot; /&gt;
   &lt;/ItemGroup&gt;
@@ -59,6 +60,10 @@
       &lt;Project&gt;{267A8DF5-2B11-470E-8878-BE6E7244B713}&lt;/Project&gt;
       &lt;Name&gt;Golem.Core&lt;/Name&gt;
     &lt;/ProjectReference&gt;
+    &lt;ProjectReference Include=&quot;..\Golem.Recipes.NAnt\Golem.Recipes.Nant.csproj&quot;&gt;
+      &lt;Project&gt;{114B7DE4-297E-4FBC-9E0D-FCF07372464A}&lt;/Project&gt;
+      &lt;Name&gt;Golem.Recipes.Nant&lt;/Name&gt;
+    &lt;/ProjectReference&gt;
   &lt;/ItemGroup&gt;
   &lt;Import Project=&quot;$(MSBuildToolsPath)\Microsoft.CSharp.targets&quot; /&gt;
   &lt;!-- To modify your build process, add your task inside one of the targets below and uncomment it. </diff>
      <filename>Golem.Test/Golem.Test.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -67,6 +67,25 @@ namespace Golem.Test
             Assert.AreEqual(&quot;LIST&quot;, AppDomain.CurrentDomain.GetData(&quot;TEST&quot;));
         }
 
+        [Test]
+        public void Can_Execute_Tasks_With_Parameters()
+        {
+            var runner = new TaskRunner(cataloger);
+            var demo5 = found[4];
+            Assert.AreEqual(&quot;demo5&quot;, found[4].Name);
+            Assert.AreEqual(&quot;foo&quot;, found[4].Tasks[0].Name);
+            runner.Run(demo5,demo5.Tasks[0],&quot;TESTING&quot;,&quot;123&quot;);
+        }
+
+        [Test]
+        public void Can_Execute_Tasks_With_Parameters_By_Name()
+        {
+            var runner = new TaskRunner(cataloger);
+                runner.Run(&quot;demo5&quot;, &quot;foo&quot;, &quot;TESTING&quot;, &quot;123&quot;);
+        }
+
+        
+
         
         [Test, Ignore]
         public void Can_Run_All_Default_Tasks()</diff>
      <filename>Golem.Test/RecipeDiscoveryFixture.cs</filename>
    </modified>
    <modified>
      <diff>@@ -11,9 +11,11 @@ Project(&quot;{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&quot;) = &quot;Golem.Build&quot;, &quot;Golem.Build\
 EndProject
 Project(&quot;{2150E333-8FDC-42A3-9474-1A3956D46DE8}&quot;) = &quot;Readme&quot;, &quot;Readme&quot;, &quot;{5ADDCA30-41AD-4EFD-BC98-08C7924EADC7}&quot;
 	ProjectSection(SolutionItems) = preProject
-		README.txt = README.txt
+		README.markdown = README.markdown
 	EndProjectSection
 EndProject
+Project(&quot;{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&quot;) = &quot;Golem.Recipes.Nant&quot;, &quot;Golem.Recipes.NAnt\Golem.Recipes.Nant.csproj&quot;, &quot;{114B7DE4-297E-4FBC-9E0D-FCF07372464A}&quot;
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -36,6 +38,10 @@ Global
 		{9F3F3B09-AB90-42E0-B099-81E8BB505954}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9F3F3B09-AB90-42E0-B099-81E8BB505954}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9F3F3B09-AB90-42E0-B099-81E8BB505954}.Release|Any CPU.Build.0 = Release|Any CPU
+		{114B7DE4-297E-4FBC-9E0D-FCF07372464A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{114B7DE4-297E-4FBC-9E0D-FCF07372464A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{114B7DE4-297E-4FBC-9E0D-FCF07372464A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{114B7DE4-297E-4FBC-9E0D-FCF07372464A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE</diff>
      <filename>Golem.sln</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>46b8b854838d5583969765e41171b481f48dcdee</id>
    </parent>
  </parents>
  <author>
    <name>Tobin</name>
    <email>tobin@tobinharris.com</email>
  </author>
  <url>http://github.com/tobinharris/golem/commit/e08259048edcae2512e00aafc4359bcacc33707b</url>
  <id>e08259048edcae2512e00aafc4359bcacc33707b</id>
  <committed-date>2008-09-25T16:11:00-07:00</committed-date>
  <authored-date>2008-09-25T16:11:00-07:00</authored-date>
  <message>We now have a NAnt recipes solution, and working proof of concept for simple NAnt tasks</message>
  <tree>5ff65ebf8c6f5fe06fc15ff8c24777b525c31764</tree>
  <committer>
    <name>Tobin</name>
    <email>tobin@tobinharris.com</email>
  </committer>
</commit>
