summaryrefslogtreecommitdiff
path: root/src/SMAPI.ModBuildConfig
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI.ModBuildConfig')
-rw-r--r--src/SMAPI.ModBuildConfig/DeployModTask.cs27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/SMAPI.ModBuildConfig/DeployModTask.cs b/src/SMAPI.ModBuildConfig/DeployModTask.cs
index 1581b282..3508a6db 100644
--- a/src/SMAPI.ModBuildConfig/DeployModTask.cs
+++ b/src/SMAPI.ModBuildConfig/DeployModTask.cs
@@ -85,33 +85,30 @@ namespace StardewModdingAPI.ModBuildConfig
return true;
// validate the manifest file
- Manifest manifest;
+ IManifest manifest;
{
- // check if manifest file exists
- FileInfo manifestFile = new(Path.Combine(this.ProjectDir, "manifest.json"));
- if (!manifestFile.Exists)
- {
- this.Log.LogError("[mod build package] The mod does not have a manifest.json file.");
- return false;
- }
-
- // check if the json is valid
try
{
- new JsonHelper().ReadJsonFileIfExists(manifestFile.FullName, out manifest);
+ string manifestPath = Path.Combine(this.ProjectDir, "manifest.json");
+ if (!new JsonHelper().ReadJsonFileIfExists(manifestPath, out Manifest rawManifest))
+ {
+ this.Log.LogError("[mod build package] The mod's manifest.json file doesn't exist.");
+ return false;
+ }
+ manifest = rawManifest;
}
catch (JsonReaderException ex)
{
// log the inner exception, otherwise the message will be generic
Exception exToShow = ex.InnerException ?? ex;
- this.Log.LogError($"[mod build package] Failed to parse manifest.json: {exToShow.Message}");
+ this.Log.LogError($"[mod build package] The mod's manifest.json file isn't valid JSON: {exToShow.Message}");
return false;
}
- // validate the manifest's fields
- if (!ManifestValidator.TryValidate(manifest, out string error))
+ // validate manifest fields
+ if (!ManifestValidator.TryValidateFields(manifest, out string error))
{
- this.Log.LogError($"[mod build package] The mod manifest is invalid: {error}");
+ this.Log.LogError($"[mod build package] The mod's manifest.json file is invalid: {error}");
return false;
}
}