Skip to content

Commit 6fbf6c2

Browse files
enhancement: added dotnet templates in init command
1 parent 1b87638 commit 6fbf6c2

File tree

5 files changed

+131
-43
lines changed

5 files changed

+131
-43
lines changed

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"mode": "debug",
99
"program": "${workspaceRoot}/main.go",
1010
"cwd": "${workspaceRoot}",
11-
"args": ["generate"]
11+
"args": ["init", "--language","dotnet"]
1212
}
1313
]
1414
}

cmd/dotnet-config.yaml.tmpl

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: {{.ProjectName}}
2+
git:
3+
repository:
4+
name: {{.GitRepositoryName}}
5+
url: {{.GitRepositoryURL}}
6+
platform:
7+
name: {{.GitPlatformName}}
8+
url: {{.GitPlatformURL}}
9+
userName: {{.GitPlatformUserName}}
10+
{{if .IsRestServer}}
11+
compageJSON:
12+
edges: []
13+
nodes:
14+
- id: node-ef
15+
name: user-service
16+
language: dotnet
17+
restConfig:
18+
server:
19+
sqlDB: MSSQL
20+
port: '5170'
21+
resources:
22+
- fields:
23+
Name:
24+
datatype: string
25+
Age:
26+
datatype: int
27+
name: User
28+
allowedMethods:
29+
- POST
30+
- LIST
31+
- GET
32+
- PUT
33+
- DELETE
34+
framework: dotnet-clean-architecture
35+
template: compage
36+
{{end}}
File renamed without changes.

cmd/init.go

Lines changed: 89 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package cmd
22

33
import (
4+
"fmt"
5+
"os"
6+
47
"github.com/intelops/compage/internal/languages/executor"
58
log "github.com/sirupsen/logrus"
69
"github.com/spf13/cobra"
7-
"os"
810
)
911

1012
var (
@@ -14,6 +16,7 @@ var (
1416
platformUserName string
1517
repositoryName string
1618
serverType string
19+
language string
1720
overwriteConfigFile bool
1821
)
1922

@@ -31,9 +34,10 @@ You can change the file as per your needs and then run the compage generate comm
3134
}
3235

3336
func createOrUpdateDefaultConfigFile() error {
37+
var err error
3438
// create default config file
3539
configFilePath := "config.yaml"
36-
_, err := os.Stat(configFilePath)
40+
_, err = os.Stat(configFilePath)
3741
if err == nil {
3842
log.Warnf("config file already exists at %s", configFilePath)
3943
if !overwriteConfigFile {
@@ -48,50 +52,94 @@ func createOrUpdateDefaultConfigFile() error {
4852
}
4953
}
5054

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)
6059
}
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)
6362
if err != nil {
6463
log.Errorf("error while creating the config file %s", err)
6564
return err
6665
}
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)
93141
}
94-
log.Infof("config file created at %s", configFilePath)
142+
95143
return nil
96144
}
97145

@@ -114,4 +162,5 @@ func init() {
114162
initCmd.Flags().StringVar(&repositoryName, "repositoryName", "myproject", "Git Repository Name")
115163
initCmd.Flags().StringVar(&serverType, "serverType", "rest", "Server Type (rest, grpc, rest-grpc)")
116164
initCmd.Flags().BoolVar(&overwriteConfigFile, "overwriteConfigFile", false, "Overwrite the config file if it already exists")
165+
initCmd.Flags().StringVar(&language, "language", "go", "Language (go, dotnet)")
117166
}

cmd/root.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ import (
1212

1313
var cfgFile string
1414

15-
//go:embed config.yaml.tmpl
16-
var Content embed.FS
15+
//go:embed go-config.yaml.tmpl
16+
var GoConfigContent embed.FS
17+
18+
//go:embed dotnet-config.yaml.tmpl
19+
var DotNetConfigContent embed.FS
1720

1821
// rootCmd represents the base command when called without any subcommands
1922
var rootCmd = &cobra.Command{

0 commit comments

Comments
 (0)