Skip to content

Commit 4205f01

Browse files
CodeMaker CLI v1.0.0
1 parent 95b4d7b commit 4205f01

File tree

4 files changed

+71
-92
lines changed

4 files changed

+71
-92
lines changed

cli/cli.go

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package cli
44

55
import (
6+
"context"
67
"flag"
78
"fmt"
89
"github.com/codemakerai/codemaker-sdk-go/client"
@@ -74,6 +75,7 @@ func (c *Cli) parseGenerateArgs() {
7475
lang := generateDocsCmd.String("language", "", "Programming language: JavaScript, Java, Kotlin")
7576
replace := generateDocsCmd.Bool("replace", false, "Determines if the existing code is replaced")
7677
codePath := generateDocsCmd.String("codepath", "", "The codepath to match.")
78+
model := generateDocsCmd.String("model", "", "The fine-tuned model name.")
7779

7880
err := generateDocsCmd.Parse(os.Args[3:])
7981
if err != nil {
@@ -93,10 +95,15 @@ func (c *Cli) parseGenerateArgs() {
9395
os.Exit(1)
9496
}
9597

96-
cl := c.createClient(*config)
98+
cl, err := c.createClient(*config)
99+
if err != nil {
100+
c.logger.Errorf("Can not create client: %v", err)
101+
os.Exit(1)
102+
}
103+
97104
files := generateDocsCmd.Args()[0:]
98105

99-
if err := c.generateCode(cl, lang, replace, codePath, files); err != nil {
106+
if err := c.generateCode(cl, lang, replace, codePath, model, files); err != nil {
100107
c.logger.Errorf("Could not generate the code %v", err)
101108
}
102109
break
@@ -124,7 +131,12 @@ func (c *Cli) parseGenerateArgs() {
124131
os.Exit(1)
125132
}
126133

127-
cl := c.createClient(*config)
134+
cl, err := c.createClient(*config)
135+
if err != nil {
136+
c.logger.Errorf("Can not create client: %v", err)
137+
os.Exit(1)
138+
}
139+
128140
files := generateDocsCmd.Args()[0:]
129141

130142
if err := c.generateDocumentation(cl, lang, replace, codePath, files); err != nil {
@@ -165,7 +177,12 @@ func (c *Cli) parseFixArgs() {
165177
os.Exit(1)
166178
}
167179

168-
cl := c.createClient(*config)
180+
cl, err := c.createClient(*config)
181+
if err != nil {
182+
c.logger.Errorf("Can not create client: %v", err)
183+
os.Exit(1)
184+
}
185+
169186
input := refactorNaming.Args()[0:]
170187

171188
if err := c.fixSyntax(cl, lang, input); err != nil {
@@ -178,7 +195,7 @@ func (c *Cli) parseFixArgs() {
178195
}
179196
}
180197

181-
func (c *Cli) generateCode(cl client.Client, lang *string, replace *bool, codePath *string, files []string) error {
198+
func (c *Cli) generateCode(cl client.Client, lang *string, replace *bool, codePath *string, model *string, files []string) error {
182199
return c.walkPath(files, func(file string) error {
183200
if lang == nil || len(*lang) == 0 {
184201
actLang, err := languageFromExtension(filepath.Ext(file))
@@ -194,7 +211,7 @@ func (c *Cli) generateCode(cl client.Client, lang *string, replace *bool, codePa
194211
return err
195212
}
196213

197-
output, err := c.process(cl, client.ModeCode, *lang, *replace, codePath, "", source)
214+
output, err := c.process(cl, client.ModeCode, *lang, *replace, codePath, model, source)
198215
if err != nil {
199216
return err
200217
}
@@ -223,7 +240,7 @@ func (c *Cli) generateDocumentation(cl client.Client, lang *string, replace *boo
223240
return err
224241
}
225242

226-
output, err := c.process(cl, client.ModeDocument, *lang, *replace, codePath, "", source)
243+
output, err := c.process(cl, client.ModeDocument, *lang, *replace, codePath, nil, source)
227244
if err != nil {
228245
return err
229246
}
@@ -254,7 +271,7 @@ func (c *Cli) generateTests(cl client.Client, lang *string, files []string, outp
254271
return err
255272
}
256273

257-
output, err := c.process(cl, client.ModeUnitTest, *lang, false, nil, "", source)
274+
output, err := c.process(cl, client.ModeUnitTest, *lang, false, nil, nil, source)
258275
if err != nil {
259276
c.logger.Errorf("failed to generate documentation for file %s %v", file, err)
260277
return err
@@ -285,7 +302,7 @@ func (c *Cli) generateTests(cl client.Client, lang *string, files []string, outp
285302
})
286303
}
287304

288-
func (c *Cli) migrateSyntax(cl client.Client, lang *string, langVer *string, files []string) error {
305+
func (c *Cli) migrateSyntax(cl client.Client, lang *string, files []string) error {
289306
return c.walkPath(files, func(file string) error {
290307
if lang == nil || len(*lang) == 0 {
291308
actLang, err := languageFromExtension(filepath.Ext(file))
@@ -303,7 +320,7 @@ func (c *Cli) migrateSyntax(cl client.Client, lang *string, langVer *string, fil
303320
return nil
304321
}
305322

306-
output, err := c.process(cl, client.ModeMigrateSyntax, *lang, false, nil, *langVer, source)
323+
output, err := c.process(cl, client.ModeMigrateSyntax, *lang, false, nil, nil, source)
307324
if err != nil {
308325
c.logger.Errorf("failed to migrate syntax in file %s %v", file, err)
309326
return nil
@@ -335,7 +352,7 @@ func (c *Cli) refactorNaming(cl client.Client, lang *string, files []string) err
335352
return nil
336353
}
337354

338-
output, err := c.process(cl, client.ModeRefactorNaming, *lang, false, nil, "", source)
355+
output, err := c.process(cl, client.ModeRefactorNaming, *lang, false, nil, nil, source)
339356
if err != nil {
340357
c.logger.Errorf("failed to rename variables in file %s %v", file, err)
341358
return nil
@@ -367,7 +384,7 @@ func (c *Cli) fixSyntax(cl client.Client, lang *string, files []string) error {
367384
return nil
368385
}
369386

370-
output, err := c.process(cl, client.ModeFixSyntax, *lang, false, nil, "", source)
387+
output, err := c.process(cl, client.ModeFixSyntax, *lang, false, nil, nil, source)
371388
if err != nil {
372389
c.logger.Errorf("failed to fix syntax in file %s %v", file, err)
373390
return nil
@@ -381,7 +398,9 @@ func (c *Cli) fixSyntax(cl client.Client, lang *string, files []string) error {
381398
})
382399
}
383400

384-
func (c *Cli) process(cl client.Client, mode string, lang string, replace bool, codePath *string, langVer string, source string) (*string, error) {
401+
func (c *Cli) process(cl client.Client, mode string, lang string, replace bool, codePath *string, model *string, source string) (*string, error) {
402+
ctx := context.Background()
403+
385404
modify := client.ModifyNone
386405
if replace {
387406
modify = client.ModifyReplace
@@ -391,57 +410,23 @@ func (c *Cli) process(cl client.Client, mode string, lang string, replace bool,
391410
codePath = nil
392411
}
393412

394-
process, err := cl.CreateProcess(&client.CreateProcessRequest{
395-
Process: client.Process{
396-
Mode: mode,
397-
Language: lang,
398-
Input: client.Input{
399-
Source: source,
400-
},
401-
Options: &client.Options{
402-
LanguageVersion: &langVer,
403-
Modify: &modify,
404-
CodePath: codePath,
405-
},
413+
process, err := cl.Process(ctx, &client.ProcessRequest{
414+
Mode: mode,
415+
Language: lang,
416+
Input: client.Input{
417+
Source: source,
418+
},
419+
Options: &client.Options{
420+
Modify: &modify,
421+
CodePath: codePath,
422+
Model: model,
406423
},
407424
})
408425
if err != nil {
409426
return nil, err
410427
}
411428

412-
retry := 0
413-
timeout := time.After(processTimeout)
414-
for {
415-
status, err := cl.GetProcessStatus(&client.GetProcessStatusRequest{
416-
Id: process.Id,
417-
})
418-
if err != nil {
419-
return nil, err
420-
}
421-
422-
if c.isCompleted(status) {
423-
break
424-
} else if c.isFailed(status) {
425-
return nil, fmt.Errorf("the task processing has failed")
426-
}
427-
428-
select {
429-
case <-timeout:
430-
return nil, fmt.Errorf("the task processing had timed out")
431-
default:
432-
c.backoff(retry)
433-
retry++
434-
}
435-
}
436-
437-
output, err := cl.GetProcessOutput(&client.GetProcessOutputRequest{
438-
Id: process.Id,
439-
})
440-
if err != nil {
441-
return nil, err
442-
}
443-
444-
return &output.Output.Source, nil
429+
return &process.Source, nil
445430
}
446431

447432
func (c *Cli) configure() error {
@@ -480,15 +465,6 @@ func (c *Cli) printVersion() {
480465
c.logger.Infof("CodeMaker CLI version %s (Build %s)", Version, Build)
481466
}
482467

483-
func (c *Cli) isCompleted(status *client.GetProcessStatusResponse) bool {
484-
return status.Status == client.StatusCompleted
485-
}
486-
487-
func (c *Cli) isFailed(status *client.GetProcessStatusResponse) bool {
488-
return status.Status == client.StatusFailed ||
489-
status.Status == client.StatusTimedOut
490-
}
491-
492468
func (c *Cli) backoff(retry int) {
493469
retry -= nonExponentRetries
494470
if retry < 0 {
@@ -576,7 +552,7 @@ func (c *Cli) writeFile(file string, source string) error {
576552
return os.WriteFile(file, []byte(source), 0644)
577553
}
578554

579-
func (c *Cli) createClient(config client.Config) client.Client {
555+
func (c *Cli) createClient(config client.Config) (client.Client, error) {
580556
return client.NewClient(config)
581557
}
582558

cli/version.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
package cli
44

55
var (
6-
Version string = "0.0.17"
7-
Build string = "20240406"
6+
Version string = "1.0.0"
7+
Build string = "20240405"
88
)

go.mod

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ module github.com/codemakerai/codemaker-cli
33
go 1.21
44

55
require (
6-
github.com/codemakerai/codemaker-sdk-go v0.0.16
6+
github.com/codemakerai/codemaker-sdk-go v1.0.0
77
github.com/joho/godotenv v1.5.1
88
go.uber.org/zap v1.27.0
99
)
1010

1111
require (
12-
go.uber.org/atomic v1.11.0 // indirect
1312
go.uber.org/multierr v1.11.0 // indirect
13+
golang.org/x/net v0.21.0 // indirect
14+
golang.org/x/sys v0.17.0 // indirect
15+
golang.org/x/text v0.14.0 // indirect
16+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect
17+
google.golang.org/grpc v1.63.0 // indirect
18+
google.golang.org/protobuf v1.33.0 // indirect
1419
)

go.sum

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,32 @@
1-
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
2-
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
3-
github.com/codemakerai/codemaker-sdk-go v0.0.14 h1:DWKKAQ9Lmr8+HDHgC4z4EtSO63zSUwvkvl8TcBscFW0=
4-
github.com/codemakerai/codemaker-sdk-go v0.0.14/go.mod h1:mPB+xrOVXMLP+Ol+I/0eWkW3dbwKd71I23PzAYvuu+k=
5-
github.com/codemakerai/codemaker-sdk-go v0.0.15 h1:tGzHAscwHc8dHPxpHmsEQGJopb6OG/Xi8Zdku135hRU=
6-
github.com/codemakerai/codemaker-sdk-go v0.0.15/go.mod h1:mPB+xrOVXMLP+Ol+I/0eWkW3dbwKd71I23PzAYvuu+k=
7-
github.com/codemakerai/codemaker-sdk-go v0.0.16 h1:6LwFpGFdotMuS9ESTNygV0SfZzgcGZRDlVx6pS9OWSI=
8-
github.com/codemakerai/codemaker-sdk-go v0.0.16/go.mod h1:mPB+xrOVXMLP+Ol+I/0eWkW3dbwKd71I23PzAYvuu+k=
1+
github.com/codemakerai/codemaker-sdk-go v1.0.0 h1:xisPtlcJkRFBGE3JSvzPMjKKtCsEW5lqY5MpnKh5kSg=
2+
github.com/codemakerai/codemaker-sdk-go v1.0.0/go.mod h1:T1nfKPMJgL/qyMTc0CCbdqiAlcwXK9ljGnJbuifbr2c=
93
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
104
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
5+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
6+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
117
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
128
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
13-
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
14-
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
159
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1610
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
17-
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
18-
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1911
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
20-
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
21-
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
22-
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
23-
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
24-
go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
25-
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
12+
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
2613
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
14+
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
2715
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
2816
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
29-
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
30-
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
3117
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
3218
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
19+
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
20+
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
21+
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
22+
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
23+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
24+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
25+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY=
26+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY=
27+
google.golang.org/grpc v1.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8=
28+
google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
29+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
30+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
3331
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
3432
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)