Skip to content

Commit 540e402

Browse files
committed
Switch to local repo if unable to create global repo
1 parent f6d7f09 commit 540e402

2 files changed

Lines changed: 18 additions & 14 deletions

File tree

build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ plugins {
88
id 'net.neoforged.moddev' version "2.0.137"
99
}
1010

11-
ext.ENV = System.getenv()
12-
def isLocal = !ENV.containsKey("GITHUB_RUN_NUMBER")
11+
var ENV = System.getenv()
12+
var CI = ENV.CI == "true"
13+
var isLocal = !ENV.containsKey("GITHUB_RUN_NUMBER")
1314

1415
version = "${mod_version}-${isLocal ? "local.${Instant.now().epochSecond}" : "build.${ENV.GITHUB_RUN_NUMBER}"}"
1516
group = project.maven_group
@@ -20,7 +21,7 @@ println("Building version: $version")
2021
neoForge {
2122
enable {
2223
version = project.neoforge_version
23-
disableRecompilation = ENV.CI == "true"
24+
disableRecompilation = CI
2425

2526
runs {
2627
configureEach {
@@ -156,7 +157,7 @@ publishing {
156157

157158
idea {
158159
module {
159-
if (ENV.CI != "true") {
160+
if (!CI) {
160161
downloadSources = true
161162
downloadJavadoc = true
162163
}

src/main/java/dev/latvian/mods/packsync/PackSync.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.net.http.HttpResponse;
2929
import java.net.http.HttpTimeoutException;
3030
import java.nio.charset.StandardCharsets;
31+
import java.nio.file.AccessDeniedException;
3132
import java.nio.file.Files;
3233
import java.nio.file.Path;
3334
import java.time.Duration;
@@ -230,26 +231,28 @@ public static void findMods(Executor executor, IDiscoveryPipeline pipeline) thro
230231
}
231232
}
232233

233-
var repositoryEnv = Optional.ofNullable(System.getenv("PACK_SYNC_REPO_DIRECTORY")).orElse("");
234-
var repository = repositoryEnv.isEmpty() ? Path.of(System.getProperty("user.home")).resolve(".latvian.dev").resolve("pack-sync") : Path.of(repositoryEnv);
234+
var localRepository = localPackSyncDirectory.resolve("repository");
235235

236-
if (Files.notExists(repository) || !Files.isDirectory(repository)) {
236+
if (Files.notExists(localRepository)) {
237237
try {
238-
Files.createDirectories(repository);
238+
Files.createDirectories(localRepository);
239239
} catch (Exception ex) {
240-
pipeline.addIssue(ModLoadingIssue.error("Failed to create Pack Sync repository directory!").withCause(ex).withAffectedPath(repository));
240+
pipeline.addIssue(ModLoadingIssue.error("Failed to create Pack Sync local repository directory!").withCause(ex).withAffectedPath(localRepository));
241241
return;
242242
}
243243
}
244244

245-
var localRepository = localPackSyncDirectory.resolve("repository");
245+
var repositoryEnv = Optional.ofNullable(System.getenv("PACK_SYNC_REPO_DIRECTORY")).orElse("");
246+
var repository = repositoryEnv.isEmpty() ? Path.of(System.getProperty("user.home")).resolve(".latvian.dev").resolve("pack-sync") : Path.of(repositoryEnv);
246247

247-
if (Files.notExists(localRepository)) {
248+
if (Files.notExists(repository) || !Files.isDirectory(repository)) {
248249
try {
249-
Files.createDirectories(localRepository);
250+
Files.createDirectories(repository);
251+
} catch (AccessDeniedException ex) {
252+
repository = localRepository;
253+
LOGGER.error("Failed to create Pack Sync repository directory! Switching to local repository directory");
250254
} catch (Exception ex) {
251-
pipeline.addIssue(ModLoadingIssue.error("Failed to create Pack Sync local repository directory!").withCause(ex).withAffectedPath(localRepository));
252-
return;
255+
pipeline.addIssue(ModLoadingIssue.error("Failed to create Pack Sync repository directory!").withCause(ex).withAffectedPath(repository));
253256
}
254257
}
255258

0 commit comments

Comments
 (0)