mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-10-17 23:17:38 +00:00

- Switch over to the Gradle GH action. Not expecting massive changes, but might provide some better caching. - Bump some GH action versions. - Fix a Java 8 compatability issue in our build scripts.
36 lines
1.3 KiB
Kotlin
36 lines
1.3 KiB
Kotlin
package cc.tweaked.gradle
|
|
|
|
import org.codehaus.groovy.runtime.ProcessGroovyMethods
|
|
import java.io.BufferedReader
|
|
import java.io.IOException
|
|
import java.io.InputStreamReader
|
|
import java.util.stream.Collectors
|
|
|
|
internal object ProcessHelpers {
|
|
fun startProcess(vararg command: String): Process {
|
|
// Something randomly passes in "GIT_DIR=" as an environment variable which clobbers everything else. Don't
|
|
// inherit the environment array!
|
|
return Runtime.getRuntime().exec(command, arrayOfNulls(0))
|
|
}
|
|
|
|
fun captureOut(vararg command: String): String {
|
|
val process = startProcess(*command)
|
|
val result = ProcessGroovyMethods.getText(process)
|
|
if (process.waitFor() != 0) throw IOException("Command exited with a non-0 status")
|
|
return result
|
|
}
|
|
|
|
fun captureLines(vararg command: String): List<String> {
|
|
return captureLines(startProcess(*command))
|
|
}
|
|
|
|
fun captureLines(process: Process): List<String> {
|
|
val out = BufferedReader(InputStreamReader(process.inputStream)).use { reader ->
|
|
reader.lines().filter { it.isNotEmpty() }.collect(Collectors.toList())
|
|
}
|
|
ProcessGroovyMethods.closeStreams(process)
|
|
if (process.waitFor() != 0) throw IOException("Command exited with a non-0 status")
|
|
return out
|
|
}
|
|
}
|