Skip to content

Commit

Permalink
Write intermediate file only if different (#87)
Browse files Browse the repository at this point in the history
* Write intermediate file only if different

Fixed #86

* Update DeclaredReferences.cs

* Update DeclaredReferences.cs

* NL
  • Loading branch information
stan-sz authored Mar 8, 2024
1 parent ca6eb09 commit 12754d8
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions src/Shared/DeclaredReferences.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
namespace ReferenceTrimmer.Shared;
using System.Text;

namespace ReferenceTrimmer.Shared;

internal record DeclaredReferences(IReadOnlyList<DeclaredReference> References)
{
Expand All @@ -22,18 +24,28 @@ internal record DeclaredReferences(IReadOnlyList<DeclaredReference> References)

public void SaveToFile(string filePath)
{
using FileStream stream = File.Create(filePath);
using StreamWriter writer = new(stream);

StringBuilder writer = new();
foreach (DeclaredReference reference in References)
{
writer.Write(reference.AssemblyPath);
writer.Write(FieldDelimiter);
writer.Write(KindEnumToString[reference.Kind]);
writer.Write(FieldDelimiter);
writer.Write(reference.Spec);
writer.WriteLine();
writer.Append(reference.AssemblyPath);
writer.Append(FieldDelimiter);
writer.Append(KindEnumToString[reference.Kind]);
writer.Append(FieldDelimiter);
writer.Append(reference.Spec);
writer.AppendLine();
}

string newContent = writer.ToString();
if (File.Exists(filePath))
{
string existing = File.ReadAllText(filePath);
if (string.Equals(existing, newContent, StringComparison.OrdinalIgnoreCase))
{
return;
}
}

File.WriteAllText(filePath, newContent);
}

public static DeclaredReferences ReadFromFile(string filePath)
Expand Down

0 comments on commit 12754d8

Please sign in to comment.