From dcfe05d2af76a5d802589c06f93905436e1bfa40 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Thu, 30 Jun 2022 21:51:26 +0200 Subject: [PATCH] project: Make it possible to skip injectors --- .../java/com/openosrs/injector/Injection.java | 23 +++++++++++-------- .../injector/injectors/AbstractInjector.java | 6 +++++ .../openosrs/injector/injectors/Injector.java | 5 ++++ .../kotlin/com/openosrs/injector/Inject.kt | 9 +++++++- .../com/openosrs/injector/InjectExtension.kt | 4 ++++ 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/openosrs/injector/Injection.java b/src/main/java/com/openosrs/injector/Injection.java index 414a2d1..d521194 100644 --- a/src/main/java/com/openosrs/injector/Injection.java +++ b/src/main/java/com/openosrs/injector/Injection.java @@ -47,8 +47,9 @@ public class Injection extends InjectData implements InjectTaskHandler { private static final Logger log = Logging.getLogger(Injection.class); public static boolean development = true; + public static String skips = ""; - public Injection(File vanilla, File rsclient, File mixins, FileTree rsapi, boolean development) + public Injection(File vanilla, File rsclient, File mixins, FileTree rsapi, boolean development, String skip) { super( load(vanilla), @@ -58,6 +59,7 @@ public class Injection extends InjectData implements InjectTaskHandler ); Injection.development = development; + Injection.skips = skip; } public void inject() @@ -142,15 +144,18 @@ public class Injection extends InjectData implements InjectTaskHandler { final String name = injector.getName(); - injector.start(); - - injector.inject(); - - String completionMsg = injector.getCompletionMsg(); - - if (completionMsg != null) + if (injector.shouldRun()) { - log.lifecycle("{} {}", name, completionMsg); + injector.start(); + + injector.inject(); + + String completionMsg = injector.getCompletionMsg(); + + if (completionMsg != null) + { + log.lifecycle("{} {}", name, completionMsg); + } } if (injector instanceof Validator) diff --git a/src/main/java/com/openosrs/injector/injectors/AbstractInjector.java b/src/main/java/com/openosrs/injector/injectors/AbstractInjector.java index baa9824..4ab762c 100644 --- a/src/main/java/com/openosrs/injector/injectors/AbstractInjector.java +++ b/src/main/java/com/openosrs/injector/injectors/AbstractInjector.java @@ -8,6 +8,7 @@ package com.openosrs.injector.injectors; import com.google.common.base.Stopwatch; +import com.openosrs.injector.Injection; import com.openosrs.injector.injection.InjectData; import lombok.RequiredArgsConstructor; import org.gradle.api.logging.Logger; @@ -29,4 +30,9 @@ public abstract class AbstractInjector implements Injector { return "finished in " + stopwatch.toString(); } + + public boolean shouldRun() + { + return !Injection.skips.contains(this.getName()); + } } diff --git a/src/main/java/com/openosrs/injector/injectors/Injector.java b/src/main/java/com/openosrs/injector/injectors/Injector.java index e1e497b..84e2c40 100644 --- a/src/main/java/com/openosrs/injector/injectors/Injector.java +++ b/src/main/java/com/openosrs/injector/injectors/Injector.java @@ -33,4 +33,9 @@ public interface Injector extends Named * Gets a message logged at quiet level when the injector ends */ String getCompletionMsg(); + + /** + * Checks if this injector is in the skip list + */ + boolean shouldRun(); } diff --git a/src/main/kotlin/com/openosrs/injector/Inject.kt b/src/main/kotlin/com/openosrs/injector/Inject.kt index 48517d8..a077d94 100644 --- a/src/main/kotlin/com/openosrs/injector/Inject.kt +++ b/src/main/kotlin/com/openosrs/injector/Inject.kt @@ -33,7 +33,14 @@ abstract class Inject : DefaultTask() { val mixins = extension.mixins.get().asFile val rsapi = project.zipTree(extension.rsapi) - val injector: InjectTaskHandler = Injection(vanilla, rsclient, mixins, rsapi, if (extension.development.isPresent) extension.development.get() else true) + val injector: InjectTaskHandler = Injection( + vanilla, + rsclient, + mixins, + rsapi, + if (extension.development.isPresent) extension.development.get() else true, + if (extension.skip.isPresent) extension.skip.get() else "" + ) injector.inject() diff --git a/src/main/kotlin/com/openosrs/injector/InjectExtension.kt b/src/main/kotlin/com/openosrs/injector/InjectExtension.kt index 70e4ca2..ba99dea 100644 --- a/src/main/kotlin/com/openosrs/injector/InjectExtension.kt +++ b/src/main/kotlin/com/openosrs/injector/InjectExtension.kt @@ -16,6 +16,10 @@ interface InjectExtension { @get:Optional val development: Property + @get:Input + @get:Optional + val skip: Property + @get:[InputFile PathSensitive(PathSensitivity.NONE)] val vanilla: RegularFileProperty