-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathProgram.cs
More file actions
61 lines (55 loc) · 2.14 KB
/
Copy pathProgram.cs
File metadata and controls
61 lines (55 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using Microsoft.Extensions.Configuration;
namespace Light.GuardClauses.SourceCodeTransformation;
public static class Program
{
public static int Main(string[] args)
{
Console.WriteLine("Creating configuration...");
var configuration = new ConfigurationBuilder().AddJsonFile("settings.json", true)
.AddJsonFile("settings.local.json", true)
.AddCommandLine(args)
.Build();
var options = new SourceFileMergeOptions();
configuration.Bind(options);
options = ApplyDefaultPaths(options);
try
{
Console.WriteLine("Merging source files...");
SourceFileMerger.CreateSingleSourceFile(options);
if (options.ValidateGeneratedFileBuild)
{
var buildValidationExitCode =
GeneratedFileBuildValidator.Validate(options.TargetFramework, options.TargetFile);
if (buildValidationExitCode != 0)
{
return buildValidationExitCode;
}
}
Console.WriteLine("Source file export completed successfully.");
return 0;
}
catch (Exception ex)
{
Console.WriteLine("Exception occurred during source file export:");
Console.WriteLine(ex);
return -1;
}
}
private static SourceFileMergeOptions ApplyDefaultPaths(SourceFileMergeOptions options)
{
if (!string.IsNullOrWhiteSpace(options.SourceFolder) &&
!string.IsNullOrWhiteSpace(options.TargetFile))
{
return options;
}
var defaultOptions = new SourceFileMergeOptions();
return options with
{
SourceFolder = string.IsNullOrWhiteSpace(options.SourceFolder) ?
defaultOptions.SourceFolder :
options.SourceFolder,
TargetFile = string.IsNullOrWhiteSpace(options.TargetFile) ? defaultOptions.TargetFile : options.TargetFile,
};
}
}