3
0

Make bundle for publishing

This commit is contained in:
Prototik
2015-06-09 11:01:23 +07:00
parent 33633471ca
commit 474ef40d59
2 changed files with 72 additions and 2 deletions

View File

@ -0,0 +1,50 @@
package kcauldron
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
class InstallBundle extends DefaultTask {
@InputFile
def File installer
@OutputDirectory
def File getInstallLocation() {
new File(project.buildDir, 'bundle')
}
@TaskAction
def install() {
installLocation.deleteDir()
installLocation.mkdirs()
for (int i = 0; i < 3; i++) {
def result = project.javaexec {
workingDir installLocation
classpath installer
main 'net.minecraftforge.installer.SimpleInstaller'
args '--installServer'
standardOutput new NopOutputStream()
errorOutput new NopOutputStream()
}
if (result.exitValue == 0) return
}
throw new GradleException("Failed to install bundle into ${installLocation}")
}
private static final class NopOutputStream extends OutputStream {
@Override
void write(byte[] b, int off, int len) throws IOException {
}
@Override
void write(byte[] b) throws IOException {
}
@Override
void write(int b) throws IOException {
}
}
}