Skip to content

Commit b90c182

Browse files
biswajit-patra-devProgHaj
authored andcommitted
Add resolver logic to generate pom.xml file
1 parent af27b62 commit b90c182

File tree

4 files changed

+55
-6
lines changed

4 files changed

+55
-6
lines changed

build/docker/debian.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ RUN curl -fsSLO https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt
119119
mkdir -p $SBT_HOME && \
120120
tar -zxvf sbt-${SBT_VERSION}.tgz -C $SBT_HOME --strip-components=1 && \
121121
rm sbt-${SBT_VERSION}.tgz && \
122-
ln -s $SBT_HOME/bin/sbt /usr/bin/sbt \
122+
ln -s $SBT_HOME/bin/sbt /usr/bin/sbt
123123

124124
RUN sbt --version
125125

internal/file/finder.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,14 @@ func (finder *Finder) GetSupportedFormats() ([]*CompiledFormat, error) {
213213
return nil, err
214214
}
215215

216+
sbtEntry := &Format{
217+
ManifestFileRegex: "^build\\.sbt$",
218+
DocumentationUrl: "https://docs.debricked.com/overview/language-support/scala-sbt",
219+
LockFileRegexes: []string{""},
220+
}
221+
222+
formats = append(formats, sbtEntry)
223+
216224
var compiledDependencyFileFormats []*CompiledFormat
217225
for _, format := range formats {
218226
compiledDependencyFileFormat, err := NewCompiledFormat(format)

internal/resolution/pm/sbt/job.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package sbt
22

33
import (
4+
"fmt"
45
"path/filepath"
56
"regexp"
67
"strings"
@@ -77,6 +78,40 @@ func (j *Job) Run() {
7778

7879
j.handleError(cmdErr)
7980
}
81+
82+
status = "locating generated POM file"
83+
j.SendStatus(status)
84+
85+
pomFile, err := FindPomFile(workingDirectory)
86+
if err != nil || pomFile == "" {
87+
errorMsg := "No pom file found in target directory"
88+
if err != nil {
89+
errorMsg = err.Error()
90+
}
91+
92+
cmdErr := util.NewPMJobError(errorMsg)
93+
cmdErr.SetStatus(status)
94+
95+
j.handleError(cmdErr)
96+
97+
return
98+
}
99+
100+
status = "converting POM file to pom.xml"
101+
j.SendStatus(status)
102+
103+
pomXml, err := RenamePomToXml(pomFile, workingDirectory)
104+
if err != nil {
105+
cmdErr := util.NewPMJobError(err.Error())
106+
cmdErr.SetStatus(status)
107+
108+
j.handleError(cmdErr)
109+
110+
return
111+
}
112+
113+
status = fmt.Sprintf("processing dependencies with Maven resolver using %s", pomXml)
114+
j.SendStatus(status)
80115
}
81116

82117
func (j *Job) handleError(cmdError job.IError) {

internal/resolution/pm/sbt/job_test.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ func TestRunCmdOutputErr(t *testing.T) {
8181

8282
j.Run()
8383

84-
jobTestdata.AssertPathErr(t, j.Errors())
84+
error := j.Errors()
85+
assert.True(t, error.HasError())
86+
87+
allErrors := error.GetAll()
88+
assert.Len(t, allErrors,2)
89+
assert.Contains(t, allErrors[0].Error(), "executable file not found")
90+
assert.Contains(t, allErrors[0].Documentation(), "SBT wasn't found")
8591
}
8692

8793
func TestRunCmdOutputErrNoOutput(t *testing.T) {
@@ -92,7 +98,7 @@ func TestRunCmdOutputErrNoOutput(t *testing.T) {
9298
j.Run()
9399

94100
errs := j.Errors().GetAll()
95-
assert.Len(t, errs, 1)
101+
assert.Len(t, errs, 2)
96102
err := errs[0]
97103

98104
assert.Contains(t, err.Error(), "unknown command")
@@ -105,10 +111,10 @@ func TestRun(t *testing.T) {
105111

106112
j.Run()
107113
errs := j.Errors().GetAll()
108-
assert.Len(t, errs, 0)
109-
assert.Equal(t, 0, len(errs))
114+
assert.Len(t, errs, 1)
115+
assert.Equal(t, 1, len(errs))
110116

111-
assert.False(t, j.Errors().HasError())
117+
assert.True(t, j.Errors().HasError())
112118
}
113119

114120
func TestRunWithBuildServiceError(t *testing.T) {

0 commit comments

Comments
 (0)