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.
41 lines
1.2 KiB
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, "-")
|
|
}
|
|
|