Skip to content

Commit c964d51

Browse files
committed
feat: read params from interact CLI
Signed-off-by: Bird <[email protected]>
1 parent a7ab937 commit c964d51

File tree

10 files changed

+362
-154
lines changed

10 files changed

+362
-154
lines changed

internal/pkg/create/create.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,9 @@ package create
33
import (
44
"fmt"
55
"time"
6-
)
76

8-
type Param struct {
9-
GithubUsername string
10-
GithubToken string
11-
DockerhubUsername string
12-
DockerhubToken string
13-
Language string
14-
Framework string
15-
}
7+
"github.com/devstream-io/devstream/internal/pkg/create/param"
8+
)
169

1710
func Create() error {
1811
helloMsg := func() {
@@ -25,7 +18,7 @@ func Create() error {
2518
}
2619
helloMsg()
2720

28-
params, err := getParams()
21+
params, err := param.GetParams()
2922
if err != nil {
3023
return err
3124
}
@@ -34,7 +27,7 @@ func Create() error {
3427
}
3528

3629
// TODO: @jf
37-
func create(params *Param) error {
30+
func create(params *param.Param) error {
3831
err := createRepo(params)
3932
if err != nil {
4033
return err
@@ -44,11 +37,11 @@ func create(params *Param) error {
4437
}
4538

4639
// TODO(daniel-hutao): support python/flask first
47-
func createRepo(params *Param) error {
40+
func createRepo(params *param.Param) error {
4841
fmt.Printf("Lang: %s, Fram: %s\n", params.Language, params.Framework)
4942
return nil
5043
}
5144

52-
func createApp(params *Param) error {
45+
func createApp(params *param.Param) error {
5346
return nil
5447
}

internal/pkg/create/framework.go

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

internal/pkg/create/language.go

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

internal/pkg/create/param.go

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package param
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/manifoldco/promptui"
7+
)
8+
9+
func getDockerHubUsername() (string, error) {
10+
prompt := promptui.Prompt{
11+
Label: "What is your DockerHub username",
12+
Validate: validate,
13+
}
14+
15+
result, err := prompt.Run()
16+
17+
if err != nil {
18+
fmt.Printf("Failed to get DockerHub username %v\n", err)
19+
return "", err
20+
}
21+
22+
return result, nil
23+
}
24+
25+
func getDockerHubToken() (string, error) {
26+
prompt := promptui.Prompt{
27+
Label: "Please input your DockerHub Personal Access Token",
28+
Mask: '*',
29+
Validate: validate,
30+
}
31+
32+
result, err := prompt.Run()
33+
34+
if err != nil {
35+
fmt.Printf("Failed to get DockerHub token %v\n", err)
36+
return "", err
37+
}
38+
39+
return result, nil
40+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package param
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/manifoldco/promptui"
7+
)
8+
9+
func getGitHubUsername() (string, error) {
10+
prompt := promptui.Prompt{
11+
Label: "What is your GitHub username",
12+
Validate: validate,
13+
}
14+
15+
result, err := prompt.Run()
16+
17+
if err != nil {
18+
fmt.Printf("Failed to get GitHub username %v\n", err)
19+
return "", err
20+
}
21+
22+
return result, nil
23+
}
24+
25+
func getGitHubRepo(language, framework string) (string, error) {
26+
prompt := promptui.Prompt{
27+
Label: "What GitHub Repo You Want to Create",
28+
Validate: validate,
29+
Default: fmt.Sprintf("%s-%s-%s", "first", language, framework),
30+
}
31+
32+
result, err := prompt.Run()
33+
34+
if err != nil {
35+
fmt.Printf("Failed to get GitHub repo %v\n", err)
36+
return "", err
37+
}
38+
39+
return result, nil
40+
}
41+
42+
func getGitHubToken() (string, error) {
43+
prompt := promptui.Prompt{
44+
Label: "Please input your GitHub Personal Access Token",
45+
Mask: '*',
46+
Validate: validate,
47+
}
48+
49+
result, err := prompt.Run()
50+
51+
if err != nil {
52+
fmt.Printf("Failed to get GitHub token %v\n", err)
53+
return "", err
54+
}
55+
56+
return result, nil
57+
}

internal/pkg/create/param/param.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package param
2+
3+
import "github.com/devstream-io/devstream/pkg/util/log"
4+
5+
type Param struct {
6+
GithubUsername string
7+
GitHubRepo string
8+
GithubToken string
9+
DockerhubUsername string
10+
DockerhubToken string
11+
Language string
12+
Framework string
13+
RepoScaffoldingURL string
14+
}
15+
16+
func GetParams() (*Param, error) {
17+
lang, frame, url, err := selectRepoScaffolding()
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
githubUsername, err := getGitHubUsername()
23+
if err != nil {
24+
return nil, err
25+
}
26+
27+
githubRepo, err := getGitHubRepo(lang, frame)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
githubToken, err := getGitHubToken()
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
dockerhubUsername, err := getDockerHubUsername()
38+
if err != nil {
39+
return nil, err
40+
}
41+
42+
dockerhubToken, err := getDockerHubToken()
43+
if err != nil {
44+
return nil, err
45+
}
46+
47+
param := &Param{
48+
Language: lang,
49+
Framework: frame,
50+
RepoScaffoldingURL: url,
51+
GithubUsername: githubUsername,
52+
GitHubRepo: githubRepo,
53+
GithubToken: githubToken,
54+
DockerhubUsername: dockerhubUsername,
55+
DockerhubToken: dockerhubToken,
56+
}
57+
// TODO: change to debug level
58+
log.Infof("param: %+v", param)
59+
return param, nil
60+
}

0 commit comments

Comments
 (0)