From bba11773265bc4f63ed2ef4b79521b5ffb1aa4dd Mon Sep 17 00:00:00 2001 From: tkarrass Date: Sat, 6 Feb 2016 01:48:29 +0100 Subject: [PATCH] params --- cmd/client.go | 27 +++++++++++++++++---------- cmd/cmd.go | 8 ++------ cmd/server.go | 15 +++++++++++---- data/level.go | 14 ++++++++++++++ data/screen.go | 7 ++++--- memo | 0 6 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 data/level.go create mode 100644 memo diff --git a/cmd/client.go b/cmd/client.go index 5583ea3..7dc08eb 100644 --- a/cmd/client.go +++ b/cmd/client.go @@ -13,15 +13,15 @@ import ( ) var cmdClient = &cobra.Command{ - Use: "client ", + Use: "client ", Short: "Runs Gosl as a client", Long: "Runs Gosl as a client", - Run: runClient, + //Run: runClient, } -//func init() { -// cmdClient.Run = runClient -//} +var ( + ServerHost string +) func register(con net.Conn, id int) error { w, h := data.TestNC() @@ -33,17 +33,24 @@ func register(con net.Conn, id int) error { func runClient(cmd *cobra.Command, args []string) { fmt.Println("running client ...") - if len(args) < 2 { - fmt.Println("Params: ") + if len(args) < 1 { + fmt.Println("Params: ") os.Exit(1) } - server := args[0] - id, _ := strconv.Atoi(args[1]) + id, _ := strconv.Atoi(args[0]) - con, err := net.Dial("tcp", server+":"+strconv.Itoa(SERVERPORT)) + con, err := net.Dial("tcp", ServerHost+":"+strconv.Itoa(ServerPort)) if err != nil { fmt.Println("connect error:", err) } register(con, id) } + +func init() { + CmdGosl.AddCommand(cmdClient) + cmdClient.Run = runClient + + cmdClient.Flags().StringVarP(&ServerHost, "host", "H", "127.0.0.1", "Connect to this server") + cmdClient.Flags().IntVarP(&ServerPort, "port", "p", 8090, "Connect to server on this port") +} diff --git a/cmd/cmd.go b/cmd/cmd.go index e28f82e..c83b477 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -6,11 +6,9 @@ import ( "github.com/spf13/cobra" ) -const SERVERPORT int = 8989 - type handshake struct{ ID, W, H int } -var cmdGosl = &cobra.Command{ +var CmdGosl = &cobra.Command{ Use: "gosl [command]", Short: "Run a gosl instance", Long: `Run a gosl server or client. @@ -20,9 +18,7 @@ For further instructions run 'gosl help [command]' } func Execute() { - cmdGosl.AddCommand(cmdServer) - cmdGosl.AddCommand(cmdClient) - if err := cmdGosl.Execute(); err != nil { + if err := CmdGosl.Execute(); err != nil { os.Exit(-1) } } diff --git a/cmd/server.go b/cmd/server.go index 152e953..8e57bf3 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -2,7 +2,6 @@ package cmd // code.bitsetter.de/fun/gosl/cmd import ( "encoding/gob" - "fmt" "log" "net" "sort" @@ -29,6 +28,10 @@ type goslClient struct { h int } +var ( + LevelFile string + ServerPort int +) var TotalWidth int = 0 var clients map[int]goslClient = make(map[int]goslClient) var clientKeys []int = make([]int, 100) @@ -52,7 +55,7 @@ func serveClients() { for _, k := range clientKeys { id, client := k, clients[k] if id > 0 { - fmt.Println("ID:", id, "Client:", client) + log.Println("ID:", id, "Client:", client) } } time.Sleep(time.Second) @@ -60,8 +63,8 @@ func serveClients() { } func runServer(cmd *cobra.Command, args []string) { - fmt.Println("running server ...") - listener, err := net.ListenTCP("tcp", &net.TCPAddr{Port: SERVERPORT}) + log.Println("running server on port", ServerPort) + listener, err := net.ListenTCP("tcp", &net.TCPAddr{Port: ServerPort}) if err != nil { log.Fatal(err) panic("Could not open Listener") @@ -79,5 +82,9 @@ func runServer(cmd *cobra.Command, args []string) { } func init() { + CmdGosl.AddCommand(cmdServer) cmdServer.Run = runServer + + cmdServer.Flags().StringVarP(&LevelFile, "level", "l", "level.lvl", "Use specific levelfile") + cmdServer.Flags().IntVarP(&ServerPort, "port", "p", 8090, "Run server on this port") } diff --git a/data/level.go b/data/level.go new file mode 100644 index 0000000..98ea53d --- /dev/null +++ b/data/level.go @@ -0,0 +1,14 @@ +package data // code.bitsetter.de/fun/gosl/data + +type Layer struct { + data []byte + w, h int +} + +type Level struct { + Layers map[int]*Layer +} + +func (lvl *Level) AddLayer(z int, l *Layer) { + lvl.Layers[z] = l +} diff --git a/data/screen.go b/data/screen.go index a0af029..1b57dc4 100644 --- a/data/screen.go +++ b/data/screen.go @@ -5,7 +5,7 @@ import ( "log" "os" - "github.com/rthornton128/goncurses" + nc "github.com/rthornton128/goncurses" ) type Screen struct { @@ -14,14 +14,15 @@ type Screen struct { } func TestNC() (int, int) { - win, err := goncurses.Init() + win, err := nc.Init() if err != nil { log.Fatal(err) os.Exit(1) } win.Clear() h, w := win.MaxYX() - goncurses.End() + nc.End() fmt.Printf("screen: %d x %d\n", w, h) + return w, h } diff --git a/memo b/memo new file mode 100644 index 0000000..e69de29