Skip to content

Commit

Permalink
(GitToolsGH-278) Support both yaml and yml files
Browse files Browse the repository at this point in the history
  • Loading branch information
gep13 committed Aug 26, 2020
1 parent 68036e8 commit 8dab85a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public async Task Should_Execute_Command()
var result = await _command.Execute(options).ConfigureAwait(false);
result.ShouldBe(0);

var configFilePath = Path.Combine(_targetDirectory, "GitReleaseManager.yaml");
var configFilePath = Path.Combine(_targetDirectory, "GitReleaseManager.yml");
var configFileExists = File.Exists(configFilePath);
configFileExists.ShouldBeTrue();

Expand Down
26 changes: 19 additions & 7 deletions src/GitReleaseManager.Core/Configuration/ConfigurationProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static Config Provide(string gitDirectory, IFileSystem fileSystem)

var configFilePath = GetConfigFilePath(gitDirectory);

if (fileSystem.Exists(configFilePath))
if (configFilePath != null)
{
_logger.Verbose("Loading configuration from file: {FilePath}", configFilePath);

Expand Down Expand Up @@ -68,18 +68,18 @@ public static void WriteSample(string targetDirectory, IFileSystem fileSystem)
throw new ArgumentNullException(nameof(fileSystem));
}

var configFilePath = GetConfigFilePath(targetDirectory);
var defaultConfigFilePath = Path.Combine(targetDirectory, "GitReleaseManager.yml");

if (!fileSystem.Exists(configFilePath))
if (!fileSystem.Exists(defaultConfigFilePath))
{
_logger.Information("Writing sample file to '{ConfigFilePath}'", configFilePath);
_logger.Information("Writing sample file to '{ConfigFilePath}'", defaultConfigFilePath);

// The following try/finally statements is to ensure that
// any stream is not disposed more than once.
Stream stream = null;
try
{
stream = fileSystem.OpenWrite(configFilePath);
stream = fileSystem.OpenWrite(defaultConfigFilePath);
using (var writer = new StreamWriter(stream))
{
stream = null;
Expand All @@ -93,13 +93,25 @@ public static void WriteSample(string targetDirectory, IFileSystem fileSystem)
}
else
{
_logger.Error("Cannot write sample, '{File}' already exists", configFilePath);
_logger.Error("Cannot write sample, '{File}' already exists", defaultConfigFilePath);
}
}

private static string GetConfigFilePath(string targetDirectory)
{
return Path.Combine(targetDirectory, "GitReleaseManager.yaml");
var filePath = Path.Combine(targetDirectory, "GitReleaseManager.yaml");
if (File.Exists(filePath))
{
return filePath;
}

filePath = Path.Combine(targetDirectory, "GitReleaseManager.yml");
if (File.Exists(filePath))
{
return filePath;
}

return null;
}

private static void EnsureDefaultConfig(Config configuration)
Expand Down

0 comments on commit 8dab85a

Please sign in to comment.