41 lines
1.5 KiB
Java
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('\\', '/');
|
|
}
|
|
}
|