Skip to content

Commit

Permalink
[tools] Fix issue when serialized json file is null (#18565)
Browse files Browse the repository at this point in the history
  • Loading branch information
BethanyZhou committed Jun 17, 2022
1 parent 58755ec commit 5fe28a3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
2 changes: 1 addition & 1 deletion tools/Tools.Common/Models/ModuleMetadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public override bool Equals(Object obj)

public static ModuleMetadata DeserializeCmdlets(string fileName)
{
return JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName));
return File.Exists(fileName) ? JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName)) : null;
}

public override int GetHashCode()
Expand Down
8 changes: 5 additions & 3 deletions tools/VersionController/Models/VersionMetadataHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,15 @@ public VersionMetadataHelper(VersionFileHelper fileHelper)
/// <returns></returns>
private ModuleMetadata DeserializeCmdlets(string fileName)
{
return JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName));
return File.Exists(fileName) ? JsonConvert.DeserializeObject<ModuleMetadata>(File.ReadAllText(fileName)) : null;
}

/// <summary>
/// Serialize the cmdlets so they can be compared to change modules later
/// </summary>
/// <param name="fileName">Name of the file cmdlets are being serialized to.</param>
/// <param name="cmdlets">List of cmdlets that are to be serialized.</param>
public static void SerializeCmdlets(string fileName, ModuleMetadata moduleMetadata)
public static string SerializeCmdlets(string fileName, ModuleMetadata moduleMetadata)
{
string json = JsonConvert.SerializeObject(moduleMetadata, new JsonSerializerSettings
{
Expand All @@ -67,6 +67,7 @@ public static void SerializeCmdlets(string fileName, ModuleMetadata moduleMetada
ContractResolver = VersionMetadataContractResolver.Instance
});
File.WriteAllText(fileName, json);
return fileName;
}

/// <summary>
Expand Down Expand Up @@ -297,7 +298,8 @@ public Version GetVersionBumpUsingSerialized()
Console.WriteLine($"Warning: {moduleName} does not have a previously serialized cmdlet for comparison.");
Console.ForegroundColor = currentColor;
var newCmdletFile = Path.Join(serializedCmdletsDirectory, serializedCmdletName);
SerializeCmdlets(newCmdletFile, newModuleMetadata);
// Use newly build one, only bump PATCH version
serializedCmdletFile = SerializeCmdlets(newCmdletFile, newModuleMetadata);
}
var oldModuleMetadata = DeserializeCmdlets(serializedCmdletFile);
CmdletLoader.ModuleMetadata = oldModuleMetadata;
Expand Down

0 comments on commit 5fe28a3

Please sign in to comment.