mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
fix: trim path from deps.json in portable way (#2674)
* fix: trim path from deps.json in portable way Previously, the path trimming regex would leave leading path separator in place on Windows. Probably a better long term fix is to a library path operation. Signed-off-by: Will Murphy <will.murphy@anchore.com>
This commit is contained in:
parent
5ef83fdc79
commit
3ad91f2678
@ -37,7 +37,7 @@ func newDotnetDepsPackage(nameVersion string, lib dotnetDepsLibrary, locations .
|
||||
}
|
||||
|
||||
func getDepsJSONFilePrefix(p string) string {
|
||||
r := regexp.MustCompile(`([^\/]+)\.deps\.json$`)
|
||||
r := regexp.MustCompile(`([^\\\/]+)\.deps\.json$`)
|
||||
match := r.FindStringSubmatch(p)
|
||||
if len(match) > 1 {
|
||||
return match[1]
|
||||
|
||||
40
syft/pkg/cataloger/dotnet/package_test.go
Normal file
40
syft/pkg/cataloger/dotnet/package_test.go
Normal file
@ -0,0 +1,40 @@
|
||||
package dotnet
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func Test_getDepsJSONFilePrefix(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
path string
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "windows-style full path",
|
||||
path: `C:\Code\Projects\My-Project\My.Rest.Project.deps.json`,
|
||||
want: "My.Rest.Project",
|
||||
},
|
||||
{
|
||||
name: "leading backslash",
|
||||
path: `\My.Project.deps.json`,
|
||||
want: "My.Project",
|
||||
},
|
||||
{
|
||||
name: "unix-style path with lots of prefixes",
|
||||
path: "/my/cool/project/cool-project.deps.json",
|
||||
want: "cool-project",
|
||||
},
|
||||
{
|
||||
name: "unix-style relative path",
|
||||
path: "cool-project/my-dotnet-project.deps.json",
|
||||
want: "my-dotnet-project",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert.Equalf(t, tt.want, getDepsJSONFilePrefix(tt.path), "getDepsJSONFilePrefix(%v)", tt.path)
|
||||
})
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user