Skip to content

Commit e26b15a

Browse files
committed
Implement new client command for typescript with Node.js
1 parent c6d46f9 commit e26b15a

23 files changed

+770
-381
lines changed

build.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/code-game-project/go-utils/cgfile"
7+
"github.com/code-game-project/go-utils/modules"
8+
)
9+
10+
func Build() error {
11+
config, err := cgfile.LoadCodeGameFile("")
12+
if err != nil {
13+
return err
14+
}
15+
16+
data, err := modules.ReadCommandConfig[modules.BuildData]()
17+
if err != nil {
18+
return err
19+
}
20+
21+
switch config.Type {
22+
case "client":
23+
return buildClient(config.Game, data.Output, config.URL)
24+
case "server":
25+
return buildServer(data.Output)
26+
default:
27+
return fmt.Errorf("Unknown project type: %s", config.Type)
28+
}
29+
}
30+
31+
func buildClient(gameName, output, url string) error {
32+
return nil
33+
}
34+
35+
func buildServer(output string) error {
36+
return nil
37+
}

go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
module github.com/code-game-project/codegame-cli-js
1+
module github.com/code-game-project/codegame-cli-go
22

33
go 1.18
44

55
require (
6-
github.com/Bananenpro/cli v0.1.2
7-
github.com/code-game-project/codegame-cli v0.5.0
8-
github.com/spf13/pflag v1.0.5
6+
github.com/Bananenpro/cli v0.2.2
7+
github.com/code-game-project/go-utils v0.2.8
98
)
109

1110
require (
@@ -15,7 +14,8 @@ require (
1514
github.com/mattn/go-colorable v0.1.12 // indirect
1615
github.com/mattn/go-isatty v0.0.14 // indirect
1716
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
18-
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68 // indirect
19-
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect
17+
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 // indirect
18+
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect
2019
golang.org/x/text v0.3.7 // indirect
20+
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
2121
)

go.sum

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
github.com/AlecAivazis/survey/v2 v2.3.5 h1:A8cYupsAZkjaUmhtTYv3sSqc7LO5mp1XDfqe5E/9wRQ=
22
github.com/AlecAivazis/survey/v2 v2.3.5/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI=
3-
github.com/Bananenpro/cli v0.1.2 h1:X6Fb80PxfhIItabAjp4G9roLCpj7Q0FvYc5jxX/8nAw=
4-
github.com/Bananenpro/cli v0.1.2/go.mod h1:JBXpIAXo/D0rlsfgCViQBicjcJY6UWUldmxvKM+ijRc=
3+
github.com/Bananenpro/cli v0.2.2 h1:7nMlgMGMT1rxkuqCiJuo/Jd89HTnw9psE3h/vQW57nk=
4+
github.com/Bananenpro/cli v0.2.2/go.mod h1:JBXpIAXo/D0rlsfgCViQBicjcJY6UWUldmxvKM+ijRc=
55
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
66
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
77
github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
88
github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
9-
github.com/code-game-project/codegame-cli v0.5.0 h1:1lB0lIy8JcCuOhGpUvoxr/2CaRnGZ7FV3Xpy1t0VOFE=
10-
github.com/code-game-project/codegame-cli v0.5.0/go.mod h1:EIgSdxiXvcgVuGLmhMgif+jpyPyi4o0xelpMHhRJG0I=
9+
github.com/code-game-project/go-utils v0.2.8 h1:f6ZvORWmlf8uZnCSAhLJ23MdA5dGvcAPkijTLfbv+B4=
10+
github.com/code-game-project/go-utils v0.2.8/go.mod h1:kQ6kH9XDzdM2pnJUI1lw61Gp8XOams/E2dKABa1mBI8=
1111
github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI=
1212
github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
1313
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -28,8 +28,6 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ
2828
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
2929
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3030
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
31-
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
32-
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
3331
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
3432
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
3533
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
@@ -40,15 +38,16 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
4038
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4139
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4240
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
43-
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68 h1:z8Hj/bl9cOV2grsOpEaQFUaly0JWN3i97mo3jXKJNp0=
44-
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
41+
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME=
42+
golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4543
golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
46-
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM=
47-
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
44+
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc=
45+
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
4846
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
4947
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
5048
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
5149
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
5250
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
53-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
5451
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
52+
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
53+
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

main.go

100755100644
Lines changed: 27 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,13 @@ import (
44
"fmt"
55
"os"
66
"path/filepath"
7-
"strings"
87

98
"github.com/Bananenpro/cli"
10-
"github.com/code-game-project/codegame-cli-js/new/client"
11-
"github.com/code-game-project/codegame-cli-js/new/server"
12-
"github.com/spf13/pflag"
139
)
1410

1511
func main() {
16-
var gameName string
17-
pflag.StringVar(&gameName, "game-name", "", "The name of the game. (required for clients)")
18-
19-
var url string
20-
pflag.StringVar(&url, "url", "", "The URL of the game. (required for clients)")
21-
22-
var libraryVersion string
23-
pflag.StringVar(&libraryVersion, "library-version", "latest", "The version of the JavaScript library to use, e.g. 0.8")
24-
25-
var typescript bool
26-
pflag.BoolVar(&typescript, "typescript", false, "Whether to use TypeScript or JavaScript.")
27-
28-
pflag.Usage = func() {
29-
fmt.Fprintf(os.Stderr, "Usage: %s <command> [...]\n", os.Args[0])
30-
fmt.Fprintln(os.Stderr, "\nCommands:")
31-
fmt.Fprintln(os.Stderr, "\tnew \tCreate a new project.")
32-
fmt.Fprintln(os.Stderr, "\nOptions:")
33-
pflag.PrintDefaults()
34-
}
35-
36-
pflag.Parse()
37-
if pflag.NArg() < 2 {
38-
pflag.Usage()
12+
if len(os.Args) < 2 {
13+
fmt.Fprintf(os.Stderr, "USAGE: %s <command> [...]\n", os.Args[0])
3914
os.Exit(1)
4015
}
4116

@@ -45,31 +20,35 @@ func main() {
4520
}
4621
projectName := filepath.Base(workingDir)
4722

48-
command := strings.ToLower(pflag.Arg(0))
49-
50-
switch command {
23+
switch os.Args[1] {
5124
case "new":
52-
err = new(projectName, url, libraryVersion, typescript)
25+
if len(os.Args) < 3 {
26+
fmt.Fprintf(os.Stderr, "USAGE: %s new <client|server>\n", os.Args[0])
27+
os.Exit(1)
28+
}
29+
switch os.Args[2] {
30+
case "client":
31+
err = CreateNewClient(projectName)
32+
case "server":
33+
err = CreateNewServer(projectName)
34+
default:
35+
fmt.Fprintln(os.Stderr, "Unknown project type:", os.Args[2])
36+
os.Exit(1)
37+
}
38+
case "update":
39+
err = Update()
40+
case "run":
41+
err = Run()
42+
case "build":
43+
err = Build()
5344
default:
54-
err = cli.Error("Unknown command: %s\n", command)
45+
fmt.Fprintln(os.Stderr, "Unknown command:", os.Args[1])
46+
os.Exit(1)
5547
}
5648
if err != nil {
49+
if err != cli.ErrCanceled {
50+
cli.Error(err.Error())
51+
}
5752
os.Exit(1)
5853
}
5954
}
60-
61-
func new(projectName, url, libraryVersion string, typescript bool) error {
62-
projectType := strings.ToLower(pflag.Arg(1))
63-
64-
var err error
65-
switch projectType {
66-
case "client":
67-
err = client.CreateNewClient(projectName, url, libraryVersion, typescript)
68-
case "server":
69-
err = server.CreateNewServer(projectName, libraryVersion)
70-
default:
71-
err = cli.Error("Unknown project type: %s\n", projectType)
72-
}
73-
74-
return err
75-
}

new/client/client.go

Lines changed: 0 additions & 93 deletions
This file was deleted.

new/client/templates/index-node.js.tmpl

Lines changed: 0 additions & 14 deletions
This file was deleted.

new/client/templates/tsconfig.json

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)