40 lines
893 B
Odin
40 lines
893 B
Odin
package hanabi
|
|
|
|
import "core:fmt"
|
|
import "core:net"
|
|
import "core:os"
|
|
|
|
USAGE :: `usage: hanabi (-c[onnect]:<server-ip:port> | -h[ost]:<p1> <p2> [p3] [p4] [p5])
|
|
|
|
example host: \
|
|
$ hanabi -h 127.0.0.1:42069 127.0.0.1:42070
|
|
|
|
example player: \
|
|
$ hanabi -c 127.0.0.1:42069`
|
|
|
|
|
|
main :: proc() {
|
|
n := len(os.args) - 2
|
|
switch os.args[1] {
|
|
case "-c", "-connect", "--connect":
|
|
assert(n == 1)
|
|
addr, ok := net.parse_endpoint(os.args[2])
|
|
if !ok do panic(fmt.tprintln("failed to parse host endpoint:", os.args[2]))
|
|
run_client(addr)
|
|
case "-H", "-host", "--host":
|
|
assert(2 <= n && n <= 5)
|
|
addrs: [dynamic]net.Endpoint
|
|
defer delete(addrs)
|
|
for addr_str in os.args[2:] {
|
|
addr, ok := net.parse_endpoint(os.args[2])
|
|
if !ok do panic(fmt.tprintln("failed to parse player endpoint:", addr_str))
|
|
append(&addrs, addr)
|
|
}
|
|
run_server(addrs[:])
|
|
case:
|
|
fmt.println(USAGE)
|
|
return
|
|
}
|
|
}
|
|
|