Skip to content

Commit bd680ec

Browse files
committed
use primary constructors
1 parent 4a7e8ce commit bd680ec

File tree

21 files changed

+77
-241
lines changed

21 files changed

+77
-241
lines changed

new-cli/Directory.Build.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,14 @@
1616

1717
<ItemGroup>
1818
<Using Include="System.Collections"/>
19+
<Using Include="System.Collections.Specialized"/>
20+
<Using Include="System.Diagnostics"/>
21+
<Using Include="System.Reflection"/>
1922
<Using Include="System.Text"/>
23+
<Using Include="System.Text.Json"/>
24+
<Using Include="System.Text.Json.Serialization"/>
25+
<Using Include="System.Xml"/>
26+
<Using Include="System.Environment" Alias="SysEnv"/>
2027
</ItemGroup>
2128

2229
</Project>
Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
1+
using GitVersion.Extensions;
12
using GitVersion.Infrastructure;
23

34
namespace GitVersion.Commands;
45

56
public record CalculateSettings : GitVersionSettings;
67

78
[Command("calculate", "Calculates the version object from the git history.")]
8-
public class CalculateCommand : ICommand<CalculateSettings>
9+
public class CalculateCommand(ILogger logger, IService service, IGitRepository repository) : ICommand<CalculateSettings>
910
{
10-
private readonly ILogger logger;
11-
private readonly IService service;
12-
private readonly IGitRepository repository;
13-
14-
public CalculateCommand(ILogger logger, IService service, IGitRepository repository)
15-
{
16-
this.logger = logger;
17-
this.service = service;
18-
this.repository = repository;
19-
}
11+
private readonly ILogger logger = logger.NotNull();
12+
private readonly IService service = service.NotNull();
13+
private readonly IGitRepository repository = repository.NotNull();
2014

2115
public Task<int> InvokeAsync(CalculateSettings settings, CancellationToken cancellationToken = default)
2216
{
2317
var value = service.Call();
24-
this.repository.DiscoverRepository(settings.WorkDir.FullName);
25-
var branches = this.repository.Branches.ToList();
26-
logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ", settings.LogFile, settings.WorkDir);
27-
logger.LogInformation("Found {count} branches", branches.Count);
18+
if (settings.WorkDir != null)
19+
{
20+
this.repository.DiscoverRepository(settings.WorkDir.FullName);
21+
var branches = this.repository.Branches.ToList();
22+
this.logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ",
23+
settings.LogFile, settings.WorkDir);
24+
this.logger.LogInformation("Found {count} branches", branches.Count);
25+
}
26+
2827
return Task.FromResult(value);
2928
}
3029
}

new-cli/GitVersion.Cli/GitVersionApp.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.CommandLine;
2+
using GitVersion.Extensions;
23
using GitVersion.Generated;
34
using GitVersion.Infrastructure;
45
using Serilog.Events;
@@ -7,17 +8,19 @@ namespace GitVersion;
78

89
internal class GitVersionApp(RootCommandImpl rootCommand)
910
{
11+
private readonly RootCommandImpl rootCommand = rootCommand.NotNull();
12+
1013
public Task<int> RunAsync(string[] args, CancellationToken cancellationToken)
1114
{
1215
var cliConfiguration = new CliConfiguration(rootCommand);
1316
var parseResult = cliConfiguration.Parse(args);
14-
15-
var logFile = parseResult.GetValue<FileInfo?>(GitVersionSettings.LogFileOptionName);
17+
18+
var logFile = parseResult.GetValue<FileInfo?>(GitVersionSettings.LogFileOption);
1619
var verbosity = parseResult.GetValue<Verbosity?>(GitVersionSettings.VerbosityOption) ?? Verbosity.Normal;
1720

1821
if (logFile?.FullName != null) LoggingEnricher.Path = logFile.FullName;
1922
LoggingEnricher.LogLevel.MinimumLevel = GetLevelForVerbosity(verbosity);
20-
23+
2124
return parseResult.InvokeAsync(cancellationToken);
2225
}
2326

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
namespace GitVersion;
22

33
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
4-
public class CommandAttribute : Attribute
4+
public class CommandAttribute(string name, string description = "") : Attribute
55
{
6-
public string Name { get; }
7-
public string Description { get; }
8-
9-
public CommandAttribute(string name, string description = "")
10-
{
11-
Name = name;
12-
Description = description;
13-
}
6+
public string Name { get; } = name;
7+
public string Description { get; } = description;
148
}
159

1610
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
17-
public class CommandAttribute<T> : CommandAttribute
18-
{
19-
public CommandAttribute(string name, string description = "") : base(name, description)
20-
{
21-
}
22-
}
11+
public class CommandAttribute<T>(string name, string description = "") : CommandAttribute(name, description);

new-cli/GitVersion.Common.Command/GitVersionSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ namespace GitVersion;
44

55
public record GitVersionSettings
66
{
7-
public const string LogFileOptionName = "--log-file";
7+
public const string LogFileOption = "--log-file";
88
public const string VerbosityOption = "--verbosity";
99

10-
[Option(LogFileOptionName, "The log file", "-l")]
10+
[Option(LogFileOption, "The log file", "-l")]
1111
public FileInfo? LogFile { get; init; }
1212

1313
[Option(VerbosityOption, "The verbosity of the logging information")]

new-cli/GitVersion.Common/Extensions/CommonExtensions.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

new-cli/GitVersion.Common/Extensions/DictionaryExtensions.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

new-cli/GitVersion.Common/Extensions/EnumerableExtensions.cs

Lines changed: 0 additions & 21 deletions
This file was deleted.

new-cli/GitVersion.Common/GitVersion.Common.csproj

Lines changed: 4 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3,84 +3,10 @@
33
<PackageReference Include="Polly" />
44
</ItemGroup>
55
<ItemGroup>
6+
<Compile Include="..\..\src\GitVersion.Core\Core\Exceptions\WarningException.cs" Link="Exceptions\WarningException.cs"/>
67
<Compile Include="..\..\src\GitVersion.Core\Extensions\StringExtensions.cs" Link="Extensions\StringExtensions.cs" />
7-
<Compile Include="..\..\src\GitVersion.Core\Git\AuthenticationInfo.cs">
8-
<Link>Git\AuthenticationInfo.cs</Link>
9-
</Compile>
10-
<Compile Include="..\..\src\GitVersion.Core\Git\CommitFilter.cs">
11-
<Link>Git\CommitFilter.cs</Link>
12-
</Compile>
13-
<Compile Include="..\..\src\GitVersion.Core\Git\IBranch.cs">
14-
<Link>Git\IBranch.cs</Link>
15-
</Compile>
16-
<Compile Include="..\..\src\GitVersion.Core\Git\IBranchCollection.cs">
17-
<Link>Git\IBranchCollection.cs</Link>
18-
</Compile>
19-
<Compile Include="..\..\src\GitVersion.Core\Git\ICommit.cs">
20-
<Link>Git\ICommit.cs</Link>
21-
</Compile>
22-
<Compile Include="..\..\src\GitVersion.Core\Git\ICommitCollection.cs">
23-
<Link>Git\ICommitCollection.cs</Link>
24-
</Compile>
25-
<Compile Include="..\..\src\GitVersion.Core\Git\IGitObject.cs">
26-
<Link>Git\IGitObject.cs</Link>
27-
</Compile>
28-
<Compile Include="..\..\src\GitVersion.Core\Git\IGitRepository.cs">
29-
<Link>Git\IGitRepository.cs</Link>
30-
</Compile>
31-
<Compile Include="..\..\src\GitVersion.Core\Git\INamedReference.cs">
32-
<Link>Git\INamedReference.cs</Link>
33-
</Compile>
34-
<Compile Include="..\..\src\GitVersion.Core\Git\IObjectId.cs">
35-
<Link>Git\IObjectId.cs</Link>
36-
</Compile>
37-
<Compile Include="..\..\src\GitVersion.Core\Git\IReference.cs">
38-
<Link>Git\IReference.cs</Link>
39-
</Compile>
40-
<Compile Include="..\..\src\GitVersion.Core\Git\IReferenceCollection.cs">
41-
<Link>Git\IReferenceCollection.cs</Link>
42-
</Compile>
43-
<Compile Include="..\..\src\GitVersion.Core\Git\IRefSpec.cs">
44-
<Link>Git\IRefSpec.cs</Link>
45-
</Compile>
46-
<Compile Include="..\..\src\GitVersion.Core\Git\IRefSpecCollection.cs">
47-
<Link>Git\IRefSpecCollection.cs</Link>
48-
</Compile>
49-
<Compile Include="..\..\src\GitVersion.Core\Git\IRemote.cs">
50-
<Link>Git\IRemote.cs</Link>
51-
</Compile>
52-
<Compile Include="..\..\src\GitVersion.Core\Git\IRemoteCollection.cs">
53-
<Link>Git\IRemoteCollection.cs</Link>
54-
</Compile>
55-
<Compile Include="..\..\src\GitVersion.Core\Git\ITag.cs">
56-
<Link>Git\ITag.cs</Link>
57-
</Compile>
58-
<Compile Include="..\..\src\GitVersion.Core\Git\ITagCollection.cs">
59-
<Link>Git\ITagCollection.cs</Link>
60-
</Compile>
61-
<Compile Include="..\..\src\GitVersion.Core\Git\ReferenceName.cs">
62-
<Link>Git\ReferenceName.cs</Link>
63-
</Compile>
64-
<Compile Include="..\..\src\GitVersion.Core\Git\RefSpecDirection.cs">
65-
<Link>Git\RefSpecDirection.cs</Link>
66-
</Compile>
67-
<Compile Include="..\..\src\GitVersion.Core\SemVer\SemanticVersion.cs">
68-
<Link>SemVer\SemanticVersion.cs</Link>
69-
</Compile>
70-
<Compile Include="..\..\src\GitVersion.Core\SemVer\SemanticVersionBuildMetaData.cs">
71-
<Link>SemVer\SemanticVersionBuildMetaData.cs</Link>
72-
</Compile>
73-
<Compile Include="..\..\src\GitVersion.Core\SemVer\SemanticVersionFormat.cs">
74-
<Link>SemVer\SemanticVersionFormat.cs</Link>
75-
</Compile>
76-
<Compile Include="..\..\src\GitVersion.Core\SemVer\SemanticVersionPreReleaseTag.cs">
77-
<Link>SemVer\SemanticVersionPreReleaseTag.cs</Link>
78-
</Compile>
79-
<Compile Include="..\..\src\GitVersion.Core\SemVer\VersionField.cs">
80-
<Link>SemVer\VersionField.cs</Link>
81-
</Compile>
82-
<Compile Include="..\..\src\GitVersion.Core\Core\Exceptions\WarningException.cs">
83-
<Link>Exceptions\WarningException.cs</Link>
84-
</Compile>
8+
<Compile Include="..\..\src\GitVersion.Core\Extensions\CommonExtensions.cs" Link="Extensions\CommonExtensions.cs" />
9+
<Compile Include="..\..\src\GitVersion.Core\Git\*.cs" Link="Git\%(Filename)%(Extension)" />
10+
<Compile Include="..\..\src\GitVersion.Core\SemVer\*.cs" Link="SemVer\%(Filename)%(Extension)"/>
8511
</ItemGroup>
8612
</Project>

new-cli/GitVersion.Configuration/ConfigCommand.cs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
1+
using GitVersion.Extensions;
12
using GitVersion.Infrastructure;
23

34
namespace GitVersion.Commands;
45

56
public record ConfigSettings : GitVersionSettings;
67

78
[Command("config", "Manages the GitVersion configuration file.")]
8-
public class ConfigCommand : ICommand<ConfigSettings>
9+
public class ConfigCommand(ILogger logger, IService service) : ICommand<ConfigSettings>
910
{
10-
private readonly ILogger logger;
11-
private readonly IService service;
12-
13-
public ConfigCommand(ILogger logger, IService service)
14-
{
15-
this.logger = logger;
16-
this.service = service;
17-
}
11+
private readonly ILogger logger = logger.NotNull();
12+
private readonly IService service = service.NotNull();
1813

1914
public Task<int> InvokeAsync(ConfigSettings settings, CancellationToken cancellationToken = default)
2015
{

0 commit comments

Comments
 (0)