Skip to content
This repository was archived by the owner on Jun 23, 2024. It is now read-only.

Make CowdinTranslateParameters lazy and DownloadTask use inputs #19

Open
wants to merge 2 commits into
base: fabric_1_19
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,40 +1,17 @@
package de.guntram.mcmod.crowdintranslate.GradlePlugin;

public class CrowdinTranslateParameters {
String crowdinProjectName;
String minecraftProjectName;
String jsonSourceName;
boolean verbose;

import org.gradle.api.provider.Property;

public abstract class CrowdinTranslateParameters {
public void setCrowdinProjectname(String s) {
crowdinProjectName = s;
}

public String getCrowdinProjectName() {
return crowdinProjectName;
}

public void setMinecraftProjectName(String s) {
minecraftProjectName = s;
}

public String getMinecraftProjectName() {
return minecraftProjectName;
}

public void setJsonSourceName(String s) {
jsonSourceName = s;
}

public String getJsonSourceName() {
return jsonSourceName;
}

public void setVerbose(boolean b) {
verbose = b;
}

public boolean getVerbose() {
return verbose;
getCrowdinProjectName().set(s);
}

public abstract Property<String> getCrowdinProjectName();

public abstract Property<String> getMinecraftProjectName();

public abstract Property<String> getJsonSourceName();

public abstract Property<Boolean> getVerbose();
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,25 @@

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.Input;

/**
*
* @author gbl
*/
public class CrowdinTranslatePlugin implements Plugin<Project> {

public static CrowdinTranslateParameters parameters;

@Override
public void apply(Project project) {

parameters = project.getExtensions()
final CrowdinTranslateParameters parameters = project.getExtensions()
.create("crowdintranslate", CrowdinTranslateParameters.class);
project.getTasks().create("downloadTranslations", DownloadTask.class);
parameters.getVerbose().convention(false);

project.getTasks().register("downloadTranslations", DownloadTask.class).configure(task -> {
task.getCrowdinProjectName().set(parameters.getCrowdinProjectName());
task.getMinecraftProjectName().set(parameters.getMinecraftProjectName());
task.getJsonSourceName().set(parameters.getJsonSourceName());
task.getVerbose().set(parameters.getVerbose());
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,41 @@

import de.guntram.mcmod.crowdintranslate.CrowdinTranslate;
import org.gradle.api.DefaultTask;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.TaskAction;

public class DownloadTask extends DefaultTask {
public abstract class DownloadTask extends DefaultTask {
@Input
@Optional
public abstract Property<String> getCrowdinProjectName();

@Input
public abstract Property<String> getMinecraftProjectName();

@Input
public abstract Property<String> getJsonSourceName();

@Input
public abstract Property<Boolean> getVerbose();

@TaskAction
public void action() {
CrowdinTranslateParameters parms = CrowdinTranslatePlugin.parameters;
if (parms.getCrowdinProjectName() == null) {
if (!getCrowdinProjectName().isPresent()) {
System.err.println("No crowdin project name given, nothing downloaded");
return;
}
String[] args = new String[ (parms.getVerbose() ? 4 : 3) ];
String[] args = new String[ (getVerbose().get() ? 4 : 3) ];
int argc = 0;
if (parms.getVerbose()) {
if (getVerbose().get()) {
args[argc++] = "-v";
}
String cpn = parms.getCrowdinProjectName();
String mpn = parms.getMinecraftProjectName();
String cpn = getCrowdinProjectName().get();
String mpn = getMinecraftProjectName().get();
args[argc++] = cpn;
args[argc++] = (mpn == null ? cpn : mpn);
args[argc++] = parms.getJsonSourceName();
args[argc++] = getJsonSourceName().get();

CrowdinTranslate.main(args);
this.setDidWork(true);
Expand Down