2026-03-24 13:42:49 +00:00

41 lines
1.5 KiB
Java

package p.packer;
import p.packer.messages.PackerProjectContext;
import java.nio.file.Path;
import java.util.Objects;
public final class PackerWorkspacePaths {
private static final String ASSETS_DIR = "assets";
private static final String PROMETEU_DIR = ".prometeu";
private static final String REGISTRY_FILE = "index.json";
private static final String CACHE_FILE = "cache.json";
private PackerWorkspacePaths() {
}
public static Path assetsRoot(PackerProjectContext project) {
return Objects.requireNonNull(project, "project").rootPath().resolve(ASSETS_DIR).toAbsolutePath().normalize();
}
public static Path registryDirectory(PackerProjectContext project) {
return assetsRoot(project).resolve(PROMETEU_DIR).toAbsolutePath().normalize();
}
public static Path registryPath(PackerProjectContext project) {
return registryDirectory(project).resolve(REGISTRY_FILE).toAbsolutePath().normalize();
}
public static Path cachePath(PackerProjectContext project) {
return registryDirectory(project).resolve(CACHE_FILE).toAbsolutePath().normalize();
}
public static Path assetRoot(PackerProjectContext project, String relativeRoot) {
return assetsRoot(project).resolve(relativeRoot).toAbsolutePath().normalize();
}
public static String relativeAssetRoot(PackerProjectContext project, Path assetRoot) {
return assetsRoot(project).relativize(assetRoot.toAbsolutePath().normalize()).toString().replace('\\', '/');
}
}