Add more default directories

This commit is contained in:
JeremyStar™ 2024-12-02 21:34:24 +01:00
parent ed1c1d3b1a
commit 8d5cb0ce23
Signed by: JeremyStarTM
GPG key ID: E366BAEF67E4704D

View file

@ -62,18 +62,78 @@ public final class FileAccess {
/** /**
* Contains a {@link FileAccess} instance to * Contains a {@link FileAccess} instance to
* a cache directory provided by the engine. * a temporary cache directory provided by the engine.
* *
* @since v1-alpha8 * @since v1-alpha9
* -- GETTER -- * -- GETTER --
* Returns a {@link FileAccess} instance to * Returns a {@link FileAccess} instance to
* a cache directory provided by the engine. * a temporary cache directory provided by the engine.
* *
* @return cache directory * @return temporary cache directory
* @since v1-alpha8 * @since v1-alpha9
*/ */
@Getter @Getter
private static FileAccess cacheDirectory; private static FileAccess temporaryCacheDirectory;
/**
* Contains a {@link FileAccess} instance to
* the persistent cache directory of the system.
*
* @since v1-alpha9
* -- GETTER --
* Returns a {@link FileAccess} instance to
* the persistent cache directory of the system.
*
* @return persistent cache directory
* @since v1-alpha9
*/
@Getter
private static FileAccess persistentCacheDirectory;
/**
* Contains a {@link FileAccess} instance
* to the user's home directory.
*
* @since v1-alpha9
* -- GETTER --
* Returns a {@link FileAccess} instance
* to the user's home directory.
*
* @return home directory
* @since v1-alpha9
*/
@Getter
private static FileAccess homeDirectory;
/**
* Contains a {@link FileAccess} instance
* to the user's configuration directory.
*
* @since v1-alpha9
* -- GETTER --
* Returns a {@link FileAccess} instance
* to the user's configuration directory.
*
* @return configuration directory
* @since v1-alpha9
*/
@Getter
private static FileAccess configDirectory;
/**
* Contains a {@link FileAccess} instance
* to the user's data directory.
*
* @since v1-alpha9
* -- GETTER --
* Returns a {@link FileAccess} instance
* to the user's data directory.
*
* @return data directory
* @since v1-alpha9
*/
@Getter
private static FileAccess dataDirectory;
// -----> Instance variables // -----> Instance variables
/** /**
@ -167,8 +227,15 @@ public final class FileAccess {
* @since v1-alpha8 * @since v1-alpha8
*/ */
public static void initializeInstances() throws IOException { public static void initializeInstances() throws IOException {
if (Engine.getInstance().getState() == EngineState.EARLY_STARTUP) // TODO add support for non-default and/or non-unix directories here
cacheDirectory = new FileAccess(System.getProperties().getProperty("java.io.tmpdir").replace("\\", "/") + "/sosengine-cache-" + ProcessHandle.current().pid()).createDirectory().deleteOnShutdown();
if (Engine.getInstance().getState() == EngineState.EARLY_STARTUP) {
temporaryCacheDirectory = new FileAccess(System.getProperties().getProperty("java.io.tmpdir") + "/sosengine-cache-" + ProcessHandle.current().pid()).createDirectory().deleteOnShutdown();
homeDirectory = new FileAccess(System.getProperties().getProperty("user.home")).createDirectory();
persistentCacheDirectory = homeDirectory.traverse( ".cache").createDirectory();
configDirectory = homeDirectory.traverse(".config").createDirectory();
dataDirectory = homeDirectory.traverse(".local/share").createDirectory();
}
} }
/** /**
* Deletes all files scheduled for deletion. * Deletes all files scheduled for deletion.
@ -207,6 +274,7 @@ public final class FileAccess {
public static @NotNull Path formatPath(@NotNull String path) { public static @NotNull Path formatPath(@NotNull String path) {
return Path.of( return Path.of(
path path
.replace("\\", "/")
.replace("/./", "/") .replace("/./", "/")
.replace("/", File.separator) .replace("/", File.separator)
); );