added packer module

This commit is contained in:
bQUARKz 2026-03-11 17:35:30 +00:00
parent a8fa659762
commit f0cc439b84
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
3 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package p.packer.api.building;
import p.packer.api.PackerProjectContext;
import java.util.Objects;
public record PackerBuildRequest(
PackerProjectContext project,
boolean incremental) {
public PackerBuildRequest {
Objects.requireNonNull(project, "project");
}
}

View File

@ -0,0 +1,28 @@
package p.packer.api.building;
import p.packer.api.PackerOperationStatus;
import p.packer.api.diagnostics.PackerDiagnostic;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public record PackerBuildResult(
PackerOperationStatus status,
String summary,
Path assetsArchive,
Map<String, Path> companionArtifacts,
List<PackerDiagnostic> diagnostics) {
public PackerBuildResult {
Objects.requireNonNull(status, "status");
summary = Objects.requireNonNull(summary, "summary").trim();
assetsArchive = Objects.requireNonNull(assetsArchive, "assetsArchive").toAbsolutePath().normalize();
companionArtifacts = Map.copyOf(Objects.requireNonNull(companionArtifacts, "companionArtifacts"));
diagnostics = List.copyOf(Objects.requireNonNull(diagnostics, "diagnostics"));
if (summary.isBlank()) {
throw new IllegalArgumentException("summary must not be blank");
}
}
}

View File

@ -0,0 +1,9 @@
package p.packer.api.building;
import p.packer.api.PackerOperationClass;
public interface PackerBuildService {
PackerOperationClass operationClass();
PackerBuildResult build(PackerBuildRequest request);
}