Skip to content

Commit e7d5380

Browse files
committed
Added support for custom templates with the msbuild integration
1 parent 268375a commit e7d5380

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

src/Generator/Tasks/EventSourceGeneratorTaskBase.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ protected EventSourceGeneratorTaskBase(IConsole console, TemplateStorage templat
6161
/// <value>The name of the template.</value>
6262
public string TemplateName { get; set; }
6363

64+
/// <summary>
65+
/// Gets or sets a custom template file
66+
/// that shall be used to generate event sources.
67+
/// </summary>
68+
public string TemplateFile { get; set; }
69+
6470
/// <summary>
6571
/// Analyzes the given <paramref name="project"/> and
6672
/// generates the event source into the same project.
@@ -124,11 +130,17 @@ protected void GenerateEventSources(Project source, Project target)
124130
/// </returns>
125131
protected Template GetTemplate()
126132
{
127-
if (string.IsNullOrEmpty(TemplateName))
133+
if(!string.IsNullOrEmpty(TemplateFile))
128134
{
129-
return _templateStorage.GetTemplate(Language);
135+
return Template.FromFile(TemplateFile);
130136
}
131-
return _templateStorage.GetCustomTemplate(TemplateName);
137+
138+
if (!string.IsNullOrEmpty(TemplateName))
139+
{
140+
return _templateStorage.GetCustomTemplate(TemplateName);
141+
}
142+
143+
return _templateStorage.GetTemplate(Language);
132144
}
133145
}
134146
}

src/Generator/Tasks/GeneratorConsoleConfiguration.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ public GeneratorConsoleConfiguration()
2424
.WithName("recursive", 'r')
2525
.And()
2626
.Argument(t => t.TemplateName)
27-
.WithName("template");
27+
.WithName("template")
28+
.And()
29+
.Argument(t => t.TemplateFile)
30+
.WithName("template-file");
2831

2932
Bind<ProjectEventSourceGeneratorTask>()
3033
.AsDefault()
@@ -39,7 +42,10 @@ public GeneratorConsoleConfiguration()
3942
.Position(1)
4043
.And()
4144
.Argument(t => t.TemplateName)
42-
.WithName("template");
45+
.WithName("template")
46+
.And()
47+
.Argument(t => t.TemplateFile)
48+
.WithName("template-file");
4349

4450
Bind<ExportTemplateTask>()
4551
.WithName("templates", "export")

src/Thor.Generator.targets

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
</PropertyGroup>
1414

1515
<Target Name="TargetName" BeforeTargets="CoreCompile">
16-
<Exec Command="$(ThorGen) project -s &quot;$(SourceProject)&quot; -t &quot;$(TargetProject)&quot;" Condition="'$(TemplateName)' == ''" />
17-
<Exec Command="$(ThorGen) project -s &quot;$(SourceProject)&quot; -t &quot;$(TargetProject)&quot; --template $(TemplateName)" Condition="'$(TemplateName)' != ''" />
16+
<Exec Command="$(ThorGen) project -s &quot;$(SourceProject)&quot; -t &quot;$(TargetProject)&quot;" Condition="'$(TemplateName)' == '' AND '$(TemplateFile)' == ''" />
17+
<Exec Command="$(ThorGen) project -s &quot;$(SourceProject)&quot; -t &quot;$(TargetProject)&quot; --template $(TemplateName)" Condition="'$(TemplateName)' != '' AND '$(TemplateFile)' == ''" />
18+
<Exec Command="$(ThorGen) project -s &quot;$(SourceProject)&quot; -t &quot;$(TargetProject)&quot; --template-file $(TemplateName)" Condition="'$(TemplateName)' == '' AND '$(TemplateFile)' != ''" />
1819
</Target>
1920
</Project>

0 commit comments

Comments
 (0)