1
1
package cmd
2
2
3
3
import (
4
+ "fmt"
5
+ "os"
6
+
4
7
"github.com/intelops/compage/internal/languages/executor"
5
8
log "github.com/sirupsen/logrus"
6
9
"github.com/spf13/cobra"
7
- "os"
8
10
)
9
11
10
12
var (
14
16
platformUserName string
15
17
repositoryName string
16
18
serverType string
19
+ language string
17
20
overwriteConfigFile bool
18
21
)
19
22
@@ -31,9 +34,10 @@ You can change the file as per your needs and then run the compage generate comm
31
34
}
32
35
33
36
func createOrUpdateDefaultConfigFile () error {
37
+ var err error
34
38
// create default config file
35
39
configFilePath := "config.yaml"
36
- _ , err : = os .Stat (configFilePath )
40
+ _ , err = os .Stat (configFilePath )
37
41
if err == nil {
38
42
log .Warnf ("config file already exists at %s" , configFilePath )
39
43
if ! overwriteConfigFile {
@@ -48,50 +52,94 @@ func createOrUpdateDefaultConfigFile() error {
48
52
}
49
53
}
50
54
51
- _ , err = os .Create (configFilePath )
52
- if err != nil {
53
- log .Errorf ("error while creating the config file %s" , err )
54
- return err
55
- }
56
- contentData , err := Content .ReadFile ("config.yaml.tmpl" )
57
- if err != nil {
58
- log .Errorf ("error while reading the config file %s" , err )
59
- return err
55
+ if language != "go" && language != "dotnet" {
56
+ message := fmt .Sprintf ("language %s is not supported" , language )
57
+ log .Errorf (message )
58
+ return fmt .Errorf (message )
60
59
}
61
- // copy the default config file and use go template to replace the values
62
- err = os .WriteFile (configFilePath , contentData , 0644 )
60
+
61
+ _ , err = os .Create (configFilePath )
63
62
if err != nil {
64
63
log .Errorf ("error while creating the config file %s" , err )
65
64
return err
66
65
}
67
- var filePaths []* string
68
- filePaths = append (filePaths , & configFilePath )
69
- data := make (map [string ]interface {})
70
- data ["ProjectName" ] = projectName
71
- data ["GitRepositoryName" ] = repositoryName
72
- data ["GitRepositoryURL" ] = platformURL + "/" + platformUserName + "/" + repositoryName
73
- data ["GitPlatformName" ] = platformName
74
- data ["GitPlatformURL" ] = platformURL
75
- data ["GitPlatformUserName" ] = platformUserName
76
- if serverType == "grpc" {
77
- data ["IsRestAndGrpcServer" ] = false
78
- data ["IsGrpcServer" ] = true
79
- data ["IsRestServer" ] = false
80
- } else if serverType == "rest-grpc" {
81
- data ["IsRestAndGrpcServer" ] = true
82
- data ["IsGrpcServer" ] = false
83
- data ["IsRestServer" ] = false
84
- } else {
85
- data ["IsRestAndGrpcServer" ] = false
86
- data ["IsGrpcServer" ] = false
87
- data ["IsRestServer" ] = true
88
- }
89
- err = executor .Execute (filePaths , data )
90
- if err != nil {
91
- log .Errorf ("error while creating the config file %s" , err )
92
- return err
66
+
67
+ if language == "go" {
68
+ var goContentData []byte
69
+ goContentData , err = GoConfigContent .ReadFile ("go-config.yaml.tmpl" )
70
+ if err != nil {
71
+ log .Errorf ("error while reading the config file %s" , err )
72
+ return err
73
+ }
74
+ // copy the default config file and use go template to replace the values
75
+ err = os .WriteFile (configFilePath , goContentData , 0644 )
76
+ if err != nil {
77
+ log .Errorf ("error while creating the config file %s" , err )
78
+ return err
79
+ }
80
+ var filePaths []* string
81
+ filePaths = append (filePaths , & configFilePath )
82
+ data := make (map [string ]interface {})
83
+ data ["ProjectName" ] = projectName
84
+ data ["GitRepositoryName" ] = repositoryName
85
+ data ["GitRepositoryURL" ] = platformURL + "/" + platformUserName + "/" + repositoryName
86
+ data ["GitPlatformName" ] = platformName
87
+ data ["GitPlatformURL" ] = platformURL
88
+ data ["GitPlatformUserName" ] = platformUserName
89
+ if serverType == "grpc" {
90
+ data ["IsRestAndGrpcServer" ] = false
91
+ data ["IsGrpcServer" ] = true
92
+ data ["IsRestServer" ] = false
93
+ } else if serverType == "rest-grpc" {
94
+ data ["IsRestAndGrpcServer" ] = true
95
+ data ["IsGrpcServer" ] = false
96
+ data ["IsRestServer" ] = false
97
+ } else {
98
+ data ["IsRestAndGrpcServer" ] = false
99
+ data ["IsGrpcServer" ] = false
100
+ data ["IsRestServer" ] = true
101
+ }
102
+ err = executor .Execute (filePaths , data )
103
+ if err != nil {
104
+ log .Errorf ("error while creating the config file %s" , err )
105
+ return err
106
+ }
107
+ log .Infof ("config file created at %s" , configFilePath )
108
+ } else if language == "dotnet" {
109
+ var dotnetContentData []byte
110
+ dotnetContentData , err = DotNetConfigContent .ReadFile ("dotnet-config.yaml.tmpl" )
111
+ if err != nil {
112
+ log .Errorf ("error while reading the config file %s" , err )
113
+ return err
114
+ }
115
+ // copy the default config file and use go template to replace the values
116
+ err = os .WriteFile (configFilePath , dotnetContentData , 0644 )
117
+ if err != nil {
118
+ log .Errorf ("error while creating the config file %s" , err )
119
+ return err
120
+ }
121
+ var filePaths []* string
122
+ filePaths = append (filePaths , & configFilePath )
123
+ data := make (map [string ]interface {})
124
+ data ["ProjectName" ] = projectName
125
+ data ["GitRepositoryName" ] = repositoryName
126
+ data ["GitRepositoryURL" ] = platformURL + "/" + platformUserName + "/" + repositoryName
127
+ data ["GitPlatformName" ] = platformName
128
+ data ["GitPlatformURL" ] = platformURL
129
+ data ["GitPlatformUserName" ] = platformUserName
130
+ if serverType == "rest" {
131
+ data ["IsRestAndGrpcServer" ] = false
132
+ data ["IsGrpcServer" ] = false
133
+ data ["IsRestServer" ] = true
134
+ }
135
+ err = executor .Execute (filePaths , data )
136
+ if err != nil {
137
+ log .Errorf ("error while creating the config file %s" , err )
138
+ return err
139
+ }
140
+ log .Infof ("config file created at %s" , configFilePath )
93
141
}
94
- log . Infof ( "config file created at %s" , configFilePath )
142
+
95
143
return nil
96
144
}
97
145
@@ -114,4 +162,5 @@ func init() {
114
162
initCmd .Flags ().StringVar (& repositoryName , "repositoryName" , "myproject" , "Git Repository Name" )
115
163
initCmd .Flags ().StringVar (& serverType , "serverType" , "rest" , "Server Type (rest, grpc, rest-grpc)" )
116
164
initCmd .Flags ().BoolVar (& overwriteConfigFile , "overwriteConfigFile" , false , "Overwrite the config file if it already exists" )
165
+ initCmd .Flags ().StringVar (& language , "language" , "go" , "Language (go, dotnet)" )
117
166
}
0 commit comments