Skip to content

Commit 498e3a0

Browse files
committed
Add case insensitive matching to Json serialization
1 parent d87caeb commit 498e3a0

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

addons/deploy_to_steamos/SettingsManager.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public partial class SettingsManager : Node
2020
public override void _EnterTree()
2121
{
2222
Instance = this;
23-
23+
2424
Load();
2525
}
2626

@@ -36,15 +36,16 @@ public void Load()
3636
using var settingsFile = FileAccess.Open(SettingsPath, FileAccess.ModeFlags.Read);
3737
var settingsFileContent = settingsFile.GetAsText();
3838

39-
Settings = JsonSerializer.Deserialize<SettingsFile>(settingsFileContent);
40-
39+
Settings = JsonSerializer.Deserialize<SettingsFile>(settingsFileContent, DefaultSerializerOptions);
40+
4141
// Failsafe if settings file is corrupt
4242
if (Settings == null)
4343
{
4444
Settings = new SettingsFile();
4545
IsDirty = true;
4646
}
4747
}
48+
4849
if (!FileAccess.FileExists(SettingsPath))
4950
{
5051
Devices = new List<SteamOSDevkitManager.Device>();
@@ -55,8 +56,8 @@ public void Load()
5556
using var devicesFile = FileAccess.Open(DevicesPath, FileAccess.ModeFlags.Read);
5657
var devicesFileContent = devicesFile.GetAsText();
5758

58-
Devices = JsonSerializer.Deserialize<List<SteamOSDevkitManager.Device>>(devicesFileContent);
59-
59+
Devices = JsonSerializer.Deserialize<List<SteamOSDevkitManager.Device>>(devicesFileContent, DefaultSerializerOptions);
60+
6061
// Failsafe if device file is corrupt
6162
if (Devices == null)
6263
{
@@ -79,17 +80,22 @@ public void Save()
7980
{
8081
DirAccess.MakeDirRecursiveAbsolute(FolderPath);
8182
}
82-
83+
8384
// Save Settings
8485
var jsonSettings = JsonSerializer.Serialize(Settings);
8586
using var settingsFile = FileAccess.Open(SettingsPath, FileAccess.ModeFlags.Write);
8687
settingsFile.StoreString(jsonSettings);
87-
88+
8889
// Save Devices
8990
var jsonDevices = JsonSerializer.Serialize(Devices);
9091
using var devicesFile = FileAccess.Open(DevicesPath, FileAccess.ModeFlags.Write);
9192
devicesFile.StoreString(jsonDevices);
9293

9394
IsDirty = false;
9495
}
96+
97+
public static readonly JsonSerializerOptions DefaultSerializerOptions = new JsonSerializerOptions
98+
{
99+
PropertyNameCaseInsensitive = true,
100+
};
95101
}

addons/deploy_to_steamos/SteamOSDevkitManager.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public static async Task<PrepareUploadResult> PrepareUpload(Device device, strin
144144
logCallable.CallDeferred("Preparing upload");
145145

146146
var resultRaw = await RunSSHCommand(device, "python3 ~/devkit-utils/steamos-prepare-upload --gameid " + gameId, logCallable);
147-
var result = JsonSerializer.Deserialize<PrepareUploadResult>(resultRaw);
147+
var result = JsonSerializer.Deserialize<PrepareUploadResult>(resultRaw, DefaultSerializerOptions);
148148

149149
return result;
150150
}
@@ -162,7 +162,7 @@ public static async Task<CreateShortcutResult> CreateShortcut(Device device, Cre
162162
var command = $"python3 ~/devkit-utils/steam-client-create-shortcut --parms '{parametersJson}'";
163163

164164
var resultRaw = await RunSSHCommand(device, command, logCallable);
165-
var result = JsonSerializer.Deserialize<CreateShortcutResult>(resultRaw);
165+
var result = JsonSerializer.Deserialize<CreateShortcutResult>(resultRaw, DefaultSerializerOptions);
166166

167167
return result;
168168
}
@@ -243,4 +243,9 @@ public static ConnectionInfo GetSSHConnectionInfo(Device device)
243243
var privateKeyFile = new PrivateKeyFile(privateKeyPath);
244244
return new ConnectionInfo(device.IPAdress, device.Login, new PrivateKeyAuthenticationMethod(device.Login, privateKeyFile));
245245
}
246+
247+
public static readonly JsonSerializerOptions DefaultSerializerOptions = new JsonSerializerOptions
248+
{
249+
PropertyNameCaseInsensitive = true,
250+
};
246251
}

0 commit comments

Comments
 (0)