Make bundle for publishing
This commit is contained in:
		
							
								
								
									
										50
									
								
								buildSrc/src/main/groovy/kcauldron/InstallBundle.groovy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								buildSrc/src/main/groovy/kcauldron/InstallBundle.groovy
									
									
									
									
									
										Normal 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 {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user