basic cli dispatch
This commit is contained in:
+8
-6
@@ -4,12 +4,14 @@ import "core:fmt"
|
||||
import "core:net"
|
||||
import "core:os"
|
||||
|
||||
main :: proc() {
|
||||
if (len(os.args) == 1 || len(os.args) > 2) {
|
||||
panic("usage: <addr:ip>")
|
||||
}
|
||||
|
||||
sock, dial_err := net.dial_tcp(os.args[1])
|
||||
client_connect :: proc(addr: net.Endpoint) -> net.TCP_Socket {
|
||||
sock, dial_err := net.dial_tcp(addr)
|
||||
if dial_err != nil do panic(fmt.tprintln("failed to dial", os.args[1]))
|
||||
return sock
|
||||
}
|
||||
|
||||
run_client :: proc(host: net.Endpoint) {
|
||||
fmt.println("hello from client")
|
||||
fmt.println(host)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
+4
-8
@@ -2,7 +2,6 @@ package hanabi
|
||||
|
||||
import "core:fmt"
|
||||
import "core:net"
|
||||
import "core:os"
|
||||
|
||||
Comm_World :: struct {
|
||||
sockets: [dynamic]net.TCP_Socket,
|
||||
@@ -31,13 +30,10 @@ create_comm_world :: proc(addresses: []string) -> (comm: Comm_World) {
|
||||
return
|
||||
}
|
||||
|
||||
main :: proc() {
|
||||
if len(os.args) == 1 {
|
||||
panic(fmt.tprintln("usage: <player 1 addr:port> <p2> [p3] [p4] [p5]"))
|
||||
run_server :: proc(players: []net.Endpoint) {
|
||||
fmt.println("hello from server")
|
||||
for p in players {
|
||||
fmt.println(p)
|
||||
}
|
||||
game := create_game(8, 3, u8(len(os.args) - 1))
|
||||
print_game(game)
|
||||
comm := create_comm_world(os.args[1:])
|
||||
fmt.println(comm.sockets)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user