Open-source multiplayer game server compatible with the RuneScape client https://www.openrs2.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/cli/src/main/java/dev/openrs2/cli/OptionExtensions.kt

41 lines
1.2 KiB

package dev.openrs2.cli
import com.github.ajalt.clikt.parameters.options.NullableOption
import com.github.ajalt.clikt.parameters.options.OptionWithValues
import com.github.ajalt.clikt.parameters.options.RawOption
import com.github.ajalt.clikt.parameters.options.convert
import com.github.ajalt.clikt.parameters.options.default
import java.io.InputStream
import java.io.OutputStream
import java.nio.file.Files
import java.nio.file.Paths
fun RawOption.inputStream(): NullableOption<InputStream, InputStream> {
return convert("FILE") {
return@convert if (it == "-") {
System.`in`
} else {
Files.newInputStream(Paths.get(it))
}
}
}
fun NullableOption<InputStream, InputStream>.defaultStdin(): OptionWithValues<InputStream, InputStream, InputStream> {
return default(System.`in`, "-")
}
fun RawOption.outputStream(): NullableOption<OutputStream, OutputStream> {
return convert("FILE") {
return@convert if (it == "-") {
System.out
} else {
Files.newOutputStream(Paths.get(it))
}
}
}
fun NullableOption<OutputStream, OutputStream>.defaultStdout(): OptionWithValues<OutputStream, OutputStream,
OutputStream> {
return default(System.out, "-")
}