Skip to content

Commit f95f407

Browse files
committed
build, git: Bump mammoth to 1.3.0
update git plugin to use ProjectOrSettingsPlugin
1 parent 02d4260 commit f95f407

File tree

2 files changed

+32
-31
lines changed

2 files changed

+32
-31
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jetbrainsAnnotations = "23.0.0"
1111
jgit = "5.13.0.+" # stay on 5.x series, 6+ requires Java 11
1212
junit = "5.9.1"
1313
kotlin = "1.7.20"
14-
mammoth = "1.2.0"
14+
mammoth = "1.3.0"
1515
spotless = "6.11.0"
1616

1717
[libraries]

indra-git/src/main/java/net/kyori/indra/git/GitPlugin.java

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -27,60 +27,61 @@
2727
import net.kyori.indra.git.internal.IndraGitExtensionImpl;
2828
import net.kyori.indra.git.internal.IndraGitService;
2929
import net.kyori.indra.git.task.RequireClean;
30-
import org.gradle.api.InvalidUserDataException;
31-
import org.gradle.api.Plugin;
30+
import net.kyori.mammoth.ProjectOrSettingsPlugin;
3231
import org.gradle.api.Project;
3332
import org.gradle.api.initialization.Settings;
3433
import org.gradle.api.invocation.Gradle;
3534
import org.gradle.api.plugins.ExtensionContainer;
35+
import org.gradle.api.plugins.PluginContainer;
3636
import org.gradle.api.provider.Provider;
37+
import org.gradle.api.tasks.TaskContainer;
3738
import org.jetbrains.annotations.NotNull;
3839

3940
/**
4041
* A plugin that exposes any git repository that might be in a project.
4142
*
4243
* @since 2.0.0
4344
*/
44-
public class GitPlugin implements Plugin<Object> {
45+
public class GitPlugin implements ProjectOrSettingsPlugin {
4546
private static final String EXTENSION_NAME = "indraGit";
4647
private static final String SERVICE_NAME = "indraGitService";
4748

4849
public static final String REQUIRE_CLEAN_TASK = "requireClean";
4950

5051
@Override
51-
public void apply(final @NotNull Object projectOrSettings) {
52-
if (projectOrSettings instanceof Project) {
53-
this.applyToProject((Project) projectOrSettings);
54-
} else if (projectOrSettings instanceof Settings) {
55-
this.applyToSettings((Settings) projectOrSettings);
56-
} else {
57-
throw new InvalidUserDataException("The net.kyori.indra.git plugin can only be applied to a Project or Settings!");
58-
}
59-
}
60-
61-
private void applyToProject(final @NotNull Project project) {
62-
final Provider<IndraGitService> service = this.applyCommon(
63-
project.getGradle(),
64-
project.getExtensions(),
65-
project.getRootDir(),
66-
project.getProjectDir(),
67-
project.getDisplayName()
68-
);
52+
public void applyToProject(
53+
final @NotNull Project target,
54+
final @NotNull PluginContainer plugins,
55+
final @NotNull ExtensionContainer extensions,
56+
final @NotNull TaskContainer tasks
57+
) {
58+
final Provider<IndraGitService> service = this.applyCommon(
59+
target.getGradle(),
60+
extensions,
61+
target.getRootDir(),
62+
target.getProjectDir(),
63+
target.getDisplayName()
64+
);
6965

7066
// And create a task, but don't ever make it run
71-
project.getTasks().register(REQUIRE_CLEAN_TASK, RequireClean.class, task -> {
67+
tasks.register(REQUIRE_CLEAN_TASK, RequireClean.class, task -> {
7268
task.getGit().set(service);
7369
});
7470
}
7571

76-
private void applyToSettings(final @NotNull Settings settings) {
77-
this.applyCommon(
78-
settings.getGradle(),
79-
settings.getExtensions(),
80-
settings.getRootDir(),
81-
settings.getRootDir(),
82-
"settings"
83-
);
72+
@Override
73+
public void applyToSettings(
74+
final @NotNull Settings target,
75+
final @NotNull PluginContainer plugins,
76+
final @NotNull ExtensionContainer extensions
77+
) {
78+
this.applyCommon(
79+
target.getGradle(),
80+
extensions,
81+
target.getRootDir(),
82+
target.getRootDir(),
83+
"settings"
84+
);
8485
}
8586

8687
private Provider<IndraGitService> applyCommon(final @NotNull Gradle gradle, final ExtensionContainer extensions, final File rootDir, final File projectDir, final String displayName) {

0 commit comments

Comments
 (0)