mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-08-27 04:37:47 +00:00
d
This commit is contained in:
@@ -177,6 +177,22 @@ public final class WorldReplacementFilesystem {
|
||||
requireFingerprint(requiredPaths.target().resolve("iris/pack"), expectedFingerprint);
|
||||
}
|
||||
|
||||
public static void validatePublishedTarget(
|
||||
ReplacementPaths paths,
|
||||
boolean originalTargetPresent,
|
||||
String expectedPackFingerprint
|
||||
) throws IOException {
|
||||
ReplacementPaths requiredPaths = Objects.requireNonNull(paths, "paths");
|
||||
String expectedFingerprint = requireFingerprint(expectedPackFingerprint);
|
||||
State state = inspect(requiredPaths);
|
||||
if (!state.targetPresent() || state.stagePresent()
|
||||
|| originalTargetPresent != state.backupPresent()) {
|
||||
throw new IOException("Published replacement storage does not match its retained-world contract.");
|
||||
}
|
||||
requireSafeTree(requiredPaths.target(), "replacement target");
|
||||
requireFingerprint(requiredPaths.target().resolve("iris/pack"), expectedFingerprint);
|
||||
}
|
||||
|
||||
public static String fingerprintPack(Path packRoot) throws IOException {
|
||||
Path root = Objects.requireNonNull(packRoot, "packRoot").toAbsolutePath().normalize();
|
||||
requireDirectory(root, "pack root");
|
||||
|
||||
Reference in New Issue
Block a user