Skip to content

Commit 1b87638

Browse files
Merge pull request #189 from intelops/add-dotnet-support
feat: added dotnet template
2 parents 0790d0d + 613b299 commit 1b87638

File tree

32 files changed

+1520
-91
lines changed

32 files changed

+1520
-91
lines changed

cmd/pullTemplates.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ var pullTemplatesCmd = &cobra.Command{
3636
cobra.CheckErr(err)
3737
err = CloneOrPullRepository("typescript")
3838
cobra.CheckErr(err)
39+
err = CloneOrPullRepository("dotnet")
40+
cobra.CheckErr(err)
3941
} else {
4042
err := CloneOrPullRepository(languageTemplate)
4143
cobra.CheckErr(err)

cmd/start.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ This command will start thr gRPC server and allow the gRPC clients to get connec
4444
defer func() {
4545
if grpcTraceProvider != nil {
4646
if err := grpcTraceProvider.Shutdown(context.Background()); err != nil {
47-
log.Printf("Error shutting down tracer provider: %v", err)
47+
log.Errorf("Error shutting down tracer provider: %v", err)
4848
}
4949
}
5050
}()
@@ -65,6 +65,8 @@ This command will start thr gRPC server and allow the gRPC clients to get connec
6565
cobra.CheckErr(err)
6666
err = CloneOrPullRepository("typescript")
6767
cobra.CheckErr(err)
68+
err = CloneOrPullRepository("dotnet")
69+
cobra.CheckErr(err)
6870

6971
// check if the git submodules have been pulled (mainly need to check this on developer's machine)
7072
if checkIfGitSubmodulesExist() {

grpc/server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ func sendFile(projectName string, server project.ProjectService_GenerateCodeServ
8989
return status.Error(codes.NotFound, "file is not found")
9090
}
9191
if err := server.SendHeader(f.Metadata()); err != nil {
92+
log.Errorf("err : %s", err)
9293
return status.Error(codes.Internal, "error during sending header")
9394
}
9495
fileChunk := &project.GenerateCodeResponse{FileChunk: make([]byte, chunkSize)}
@@ -105,6 +106,7 @@ Loop:
105106
fileChunk.FileChunk = fileChunk.FileChunk[:n]
106107
serverErr := server.Send(fileChunk)
107108
if serverErr != nil {
109+
log.Errorf("err : %s", serverErr)
108110
return status.Errorf(codes.Internal, "server.Send: %v", serverErr)
109111
}
110112
}

internal/handlers/projects.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/intelops/compage/internal/integrations/deepsource"
99
"github.com/intelops/compage/internal/integrations/readme"
1010
"github.com/intelops/compage/internal/languages"
11+
"github.com/intelops/compage/internal/languages/dotnet"
1112
"github.com/intelops/compage/internal/languages/golang"
1213
"github.com/intelops/compage/internal/languages/java"
1314
"github.com/intelops/compage/internal/languages/javascript"
@@ -79,16 +80,6 @@ func processNode(coreProject *core.Project, compageNode *corenode.Node) error {
7980
// add values(LanguageNode and configs from coreProject) to context.
8081
languageCtx := languages.AddValuesToContext(context.Background(), coreProject, languageNode)
8182

82-
// extract nodeDirectoryName for formatter
83-
values := languageCtx.Value(languages.ContextKeyLanguageContextVars).(languages.Values)
84-
nodeDirectoryName := values.NodeDirectoryName
85-
86-
// create node directory in projectDirectory depicting a subproject
87-
if err0 := utils.CreateDirectories(nodeDirectoryName); err0 != nil {
88-
log.Errorf("err : %s", err0)
89-
return err0
90-
}
91-
9283
err = runLanguageProcess(languageNode, languageCtx)
9384
if err != nil {
9485
log.Errorf("err : %s", err)
@@ -148,6 +139,13 @@ func runLanguageProcess(languageNode *languages.LanguageNode, languageCtx contex
148139
log.Errorf("err : %s", err1)
149140
return err1
150141
}
142+
} else if languageNode.Language == languages.DotNet {
143+
// add values(LanguageNode and configs from coreProject) to context.
144+
dotnetCtx := dotnet.AddValuesToContext(languageCtx)
145+
if err1 := dotnet.Process(dotnetCtx); err1 != nil {
146+
log.Debugf("err : %s", err1)
147+
return err1
148+
}
151149
}
152150
return nil
153151
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dotnet
2+
3+
import (
4+
"context"
5+
"github.com/intelops/compage/internal/languages"
6+
)
7+
8+
type contextKey string
9+
10+
func (c contextKey) String() string {
11+
return string(c)
12+
}
13+
14+
var (
15+
contextKeyDotNetContextVars = contextKey("DotNetContextVars")
16+
)
17+
18+
type DotNetValues struct {
19+
Values *languages.Values
20+
LDotNetLangNode *LDotNetLangNode
21+
}
22+
23+
func AddValuesToContext(ctx context.Context) context.Context {
24+
values := ctx.Value(languages.ContextKeyLanguageContextVars).(languages.Values)
25+
v := DotNetValues{
26+
Values: &values,
27+
LDotNetLangNode: &LDotNetLangNode{
28+
LanguageNode: values.LanguageNode,
29+
},
30+
}
31+
32+
return context.WithValue(ctx, contextKeyDotNetContextVars, v)
33+
}

0 commit comments

Comments
 (0)