fix: allow new pilot run after completed rollback
This commit is contained in:
@@ -32,7 +32,7 @@ internal static class PilotCli
|
||||
Directory.CreateDirectory(Path.Combine(root, "catalog"));
|
||||
await File.WriteAllTextAsync(Path.Combine(root, "catalog", "P_Rec_Annot.manifest.json"), JsonSerializer.Serialize(manifest));
|
||||
if (!File.Exists(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe")) return Fail(DiscoveryFailed, "PLANT3D_2026_NOT_FOUND");
|
||||
if (command == "run" && File.Exists(SessionPath(root))) return await HandleExistingSession(root);
|
||||
if (command == "run" && File.Exists(SessionPath(root)) && await HasActiveSession(root)) return await HandleExistingSession(root);
|
||||
var service = CreateService();
|
||||
var product = new ProductInstallation(@"C:\Program Files\Autodesk\AutoCAD 2026\acad.exe", "2026", "x64", []);
|
||||
var request = new PilotPreparationRequest(config, product, manifest!, manifestHash!, options.PackageSource!, root, Path.Combine(root, "startup", "prepare-only.scr"));
|
||||
@@ -96,6 +96,11 @@ internal static class PilotCli
|
||||
var state = document.RootElement.GetProperty("State").GetString();
|
||||
return state == "RolledBack" ? Success : Fail(SessionConflict, "PILOT_SESSION_ALREADY_ACTIVE");
|
||||
}
|
||||
private static async Task<bool> HasActiveSession(string root)
|
||||
{
|
||||
using var document = JsonDocument.Parse(await File.ReadAllTextAsync(SessionPath(root)));
|
||||
return document.RootElement.GetProperty("State").GetString() != "RolledBack";
|
||||
}
|
||||
private static async Task<bool> IsRolledBack(string root)
|
||||
{
|
||||
if (!File.Exists(SessionPath(root))) return false;
|
||||
|
||||
Reference in New Issue
Block a user