Implement basic command structure

This commit is contained in:
tkarrass 2016-01-18 23:19:51 +01:00
parent c48af21a49
commit b4251237ba
6 changed files with 91 additions and 0 deletions

17
Gosl.go Normal file
View File

@ -0,0 +1,17 @@
package main // code.bitsetter.de/fun/gosl
import (
"runtime"
"code.bitsetter.de/fun/gosl/cmd"
)
func main() {
// Max out processor usage:
// since go 1.5 it's the default to use all available cores,
// let's stay compatible to go <= 1.4
runtime.GOMAXPROCS(runtime.NumCPU())
// let each cmd handle itself
cmd.Execute()
}

22
cmd/Client.go Normal file
View File

@ -0,0 +1,22 @@
package cmd // code.bitsetter.de/fun/gosl/cmd
import (
"fmt"
"github.com/spf13/cobra"
)
var cmdClient = &cobra.Command{
Use: "client",
Short: "Runs Gosl as a client",
Long: "Runs Gosl as a client",
// Run:
}
func runClient(cmd *cobra.Command, args []string) {
fmt.Println("running client ...")
}
func init() {
cmdClient.Run = runClient
}

24
cmd/Cmd.go Normal file
View File

@ -0,0 +1,24 @@
package cmd // code.bitsetter.de/fun/gosl/cmd
import (
"os"
"github.com/spf13/cobra"
)
var cmdGosl = &cobra.Command{
Use: "gosl [command]",
Short: "Run a gosl instance",
Long: `Run a gosl server or client."
For further instructions run 'gosl help [command]'
`,
}
func Execute() {
cmdGosl.AddCommand(cmdServer)
cmdGosl.AddCommand(cmdClient)
if err := cmdGosl.Execute(); err != nil {
os.Exit(-1)
}
}

22
cmd/Server.go Normal file
View File

@ -0,0 +1,22 @@
package cmd // code.bitsetter.de/fun/gosl/cmd
import (
"fmt"
"github.com/spf13/cobra"
)
var cmdServer = &cobra.Command{
Use: "server",
Short: "Runs Gosl as a server",
Long: "Runs Gosl as a server",
// Run:
}
func runServer(cmd *cobra.Command, args []string) {
fmt.Println("running server ...")
}
func init() {
cmdServer.Run = runServer
}

6
data/Screen.go Normal file
View File

@ -0,0 +1,6 @@
package data // code.bitsetter.de/fun/gosl/data
type Screen struct {
w, h int
data []rune
}

BIN
gosl Executable file

Binary file not shown.