aboutsummaryrefslogtreecommitdiff
path: root/plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java')
-rw-r--r--plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java b/plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java
new file mode 100644
index 0000000..4b4fa64
--- /dev/null
+++ b/plugin/src/main/java/moe/nea/zwirn/plugin/DiffTinyFilesTask.java
@@ -0,0 +1,39 @@
+package moe.nea.zwirn.plugin;
+
+import moe.nea.zwirn.Zwirn;
+import org.gradle.api.DefaultTask;
+import org.gradle.api.file.RegularFileProperty;
+import org.gradle.api.provider.ListProperty;
+import org.gradle.api.provider.Property;
+import org.gradle.api.tasks.Input;
+import org.gradle.api.tasks.InputFile;
+import org.gradle.api.tasks.OutputFile;
+import org.gradle.api.tasks.TaskAction;
+
+public abstract class DiffTinyFilesTask extends DefaultTask {
+ @InputFile
+ public abstract RegularFileProperty getMergedTinyFile();
+
+ @InputFile
+ public abstract RegularFileProperty getBaseTinyFile();
+
+ @OutputFile
+ public abstract RegularFileProperty getOutputTinyFile();
+
+ @Input
+ public abstract Property<String> getSharedNamespace();
+
+ @Input
+ public abstract ListProperty<String> getRetainedNamespaces();
+
+ @TaskAction
+ public void diffTiny() {
+ var merged = ZwirnPluginUtils.readTiny(getMergedTinyFile());
+ var base = ZwirnPluginUtils.readTiny(getBaseTinyFile());
+ var remerged = Zwirn.mergeTinyFile(base, merged, getSharedNamespace().get());
+ var overlay = Zwirn.createOverlayTinyFile(base, remerged, getRetainedNamespaces().get(), getSharedNamespace().get());
+ ZwirnPluginUtils.writeTiny(overlay, getOutputTinyFile());
+ }
+
+
+}