Skip to content

Commit 60c5d22

Browse files
committed
Access version catalog via project in split projects
Signed-off-by: Lilly Rose Berner <lilly@lostluma.net>
1 parent 9bc003b commit 60c5d22

1 file changed

Lines changed: 27 additions & 46 deletions

File tree

public/develop.js

Lines changed: 27 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -159,25 +159,27 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
159159
}
160160
}
161161

162-
function generateVersionAccessor(property, dependencyManagement, alias = null) {
163-
if (!alias) {
164-
alias = property.replace(/_/g, ".");
165-
}
166-
162+
function generateVersionAccessor(property, dependencyManagement, alias = null, useProject = false) {
167163
switch (dependencyManagement) {
168164
case "propertiesFile":
169165
return `project.${property}`
170166
case "versionCatalog":
171-
return `libs.versions.${alias}.get()`
167+
if (!alias) {
168+
alias = property.replace(/_/g, ".");
169+
}
170+
171+
const prefix = useProject ? "project." : "";
172+
return `${prefix}libs.versions.${alias}.get()`
172173
default:
173174
throw new Error(`Unknown dependency management type ${dependencyManagement}`);
174175
}
175176
}
176177

177-
function generateDependencyDefinition(id, alias, version, dependencyManagement) {
178+
function generateDependencyDefinition(id, alias, version, dependencyManagement, useProject = false) {
178179
switch (dependencyManagement) {
179180
case "versionCatalog":
180-
return `libs.${alias}`
181+
const prefix = useProject ? "project." : "";
182+
return `${prefix}libs.${alias}`
181183
case "propertiesFile":
182184
return `"${id}:${version}"`
183185
default:
@@ -353,22 +355,10 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
353355
displayCodeBlockLines(elementId, plugins);
354356
}
355357

356-
switch (dependencyManagement) {
357-
case "propertiesFile":
358-
displayCodeBlockLines(elementId, [
359-
"",
360-
"def configure(project) {"
361-
]);
362-
break;
363-
case "versionCatalog":
364-
displayCodeBlockLines(elementId, [
365-
"",
366-
"def configure(project, libs) {"
367-
]);
368-
break;
369-
default:
370-
throw new Error(`Unknown dependency management type ${dependencyManagement}`);
371-
}
358+
displayCodeBlockLines(elementId, [
359+
"",
360+
"def configure(project) {"
361+
]);
372362

373363
plugins = [
374364
"\t\tproject.apply plugin: 'java'"
@@ -430,15 +420,15 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
430420
}
431421

432422
const dependencies = [
433-
`\t\tminecraft ${generateDependencyDefinition("com.mojang:minecraft", "minecraft", "${project.minecraft_version}", dependencyManagement)}`
423+
`\t\tminecraft ${generateDependencyDefinition("com.mojang:minecraft", "minecraft", "${project.minecraft_version}", dependencyManagement, true)}`
434424
];
435425

436426
switch (modLoader) {
437427
case "fabric":
438-
dependencies.push(`\t\tmodImplementation ${generateDependencyDefinition(FABRIC_LOADER, "loader", "${project.loader_version}", dependencyManagement)}`)
428+
dependencies.push(`\t\tmodImplementation ${generateDependencyDefinition(FABRIC_LOADER, "loader", "${project.loader_version}", dependencyManagement, true)}`)
439429
break;
440430
case "quilt":
441-
dependencies.push(`\t\tmodImplementation ${generateDependencyDefinition(QUILT_LOADER, "loader", "${project.loader_version}", dependencyManagement)}`)
431+
dependencies.push(`\t\tmodImplementation ${generateDependencyDefinition(QUILT_LOADER, "loader", "${project.loader_version}", dependencyManagement, true)}`)
442432
break;
443433
default:
444434
throw new Error("unknown mod loader " + modLoader);
@@ -466,32 +456,32 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
466456
dependencies.push("\t\tif (project.environment == 'client') {");
467457

468458
if (featherBuilds.client !== null) {
469-
dependencies.push(`\t\t\tmappings project.ploceus.featherMappings(libs.versions.client.feather.build.get())`);
459+
dependencies.push(`\t\t\tmappings project.ploceus.featherMappings(project.libs.versions.client.feather.build.get())`);
470460
}
471461
if (ravenBuilds.client !== null) {
472-
dependencies.push(`\t\t\texceptions project.ploceus.raven(libs.versions.client.raven.build.get())`);
462+
dependencies.push(`\t\t\texceptions project.ploceus.raven(project.libs.versions.client.raven.build.get())`);
473463
}
474464
if (sparrowBuilds.client !== null) {
475-
dependencies.push(`\t\t\tsignatures project.ploceus.sparrow(libs.versions.client.sparrow.build.get())`);
465+
dependencies.push(`\t\t\tsignatures project.ploceus.sparrow(project.libs.versions.client.sparrow.build.get())`);
476466
}
477467
if (nestsBuilds.client !== null) {
478-
dependencies.push(`\t\t\tnests project.ploceus.nests(libs.versions.client.nests.build.get())`);
468+
dependencies.push(`\t\t\tnests project.ploceus.nests(project.libs.versions.client.nests.build.get())`);
479469
}
480470

481471
dependencies.push("\t\t}");
482472
dependencies.push("\t\tif (project.environment == 'server') {");
483473

484474
if (featherBuilds.server !== null) {
485-
dependencies.push(`\t\t\tmappings project.ploceus.featherMappings(libs.versions.server.feather.build.get())`);
475+
dependencies.push(`\t\t\tmappings project.ploceus.featherMappings(project.libs.versions.server.feather.build.get())`);
486476
}
487477
if (ravenBuilds.server !== null) {
488-
dependencies.push(`\t\t\texceptions project.ploceus.raven(libs.versions.server.raven.build.get())`);
478+
dependencies.push(`\t\t\texceptions project.ploceus.raven(project.libs.versions.server.raven.build.get())`);
489479
}
490480
if (sparrowBuilds.server !== null) {
491-
dependencies.push(`\t\t\tsignatures project.ploceus.sparrow(libs.versions.server.sparrow.build.get())`);
481+
dependencies.push(`\t\t\tsignatures project.ploceus.sparrow(project.libs.versions.server.sparrow.build.get())`);
492482
}
493483
if (nestsBuilds.server !== null) {
494-
dependencies.push(`\t\t\tnests project.ploceus.nests(libs.versions.server.nests.build.get())`);
484+
dependencies.push(`\t\t\tnests project.ploceus.nests(project.libs.versions.server.nests.build.get())`);
495485
}
496486

497487
dependencies.push("\t\t}");
@@ -502,7 +492,7 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
502492

503493
if (oslVersion != null) {
504494
dependencies.push("");
505-
dependencies.push(`\t\tproject.ploceus.dependOsl(${generateVersionAccessor("osl_version", dependencyManagement, "osl")}, project.environment)`);
495+
dependencies.push(`\t\tproject.ploceus.dependOsl(${generateVersionAccessor("osl_version", dependencyManagement, "osl", true)}, project.environment)`);
506496
}
507497

508498
if (dependencies) {
@@ -517,16 +507,7 @@ import { normalizeMinecraftVersion } from "./minecraft_semver.js";
517507
} else {
518508
const elementId = `${project}.build.gradle.content`;
519509

520-
switch (dependencyManagement) {
521-
case "propertiesFile":
522-
displayCodeBlockLines(elementId, ["configure(project)"]);
523-
break;
524-
case "versionCatalog":
525-
displayCodeBlockLines(elementId, ["configure(project, libs)"]);
526-
break;
527-
default:
528-
throw new Error(`Unknown dependency management type ${dependencyManagement}`);
529-
}
510+
displayCodeBlockLines(elementId, ["configure(project)"]);
530511
}
531512
}
532513

0 commit comments

Comments
 (0)