aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatalin Stratu <catalinstratu45@gmail.com>2022-03-15 11:23:14 +0200
committerCatalin Stratu <catalinstratu45@gmail.com>2022-03-15 11:24:39 +0200
commitf7ea935382e82acded9629df367cf9f4c92db7ff (patch)
treec9178ada14fecf765f9a95224b329b8eed3705d8
parentbc89f8d4e27d92ba8943026f6d628d243891c366 (diff)
downloadspdx-tools-f7ea935382e82acded9629df367cf9f4c92db7ff.tar.gz
Fixes patch for WINDOWS OS
Signed-off-by: Catalin Stratu <catalinstratu45@gmail.com>
-rw-r--r--builder/builder2v1/build_package.go18
-rw-r--r--builder/builder2v2/build_package.go13
2 files changed, 26 insertions, 5 deletions
diff --git a/builder/builder2v1/build_package.go b/builder/builder2v1/build_package.go
index 2093516..e59e676 100644
--- a/builder/builder2v1/build_package.go
+++ b/builder/builder2v1/build_package.go
@@ -8,6 +8,7 @@ import (
"github.com/spdx/tools-golang/utils"
"path/filepath"
"regexp"
+ "runtime"
)
// BuildPackageSection2_1 creates an SPDX Package (version 2.1), returning
@@ -22,18 +23,27 @@ func BuildPackageSection2_1(packageName string, dirRoot string, pathsIgnore []st
if err != nil {
return nil, err
}
+ osType := runtime.GOOS
re, ok := regexp.Compile("/+")
if ok != nil {
return nil, err
}
+
+ dirRootLen := 0
+ if osType == "windows" {
+ dirRootLen = len(dirRoot)
+ }
+
files := map[spdx.ElementID]*spdx.File2_1{}
fileNumber := 0
- //dirRootLen := len(dirRoot)
for _, fp := range filepaths {
- newFileName := fp
- newFilePatch := filepath.FromSlash("." + newFileName)
- fmt.Println(newFilePatch)
+ newFilePatch := ""
+ if osType == "windows" {
+ newFilePatch = filepath.FromSlash("." + fp[dirRootLen:])
+ } else {
+ newFilePatch = filepath.FromSlash("./" + fp)
+ }
newFile, err := BuildFileSection2_1(re.ReplaceAllLiteralString(newFilePatch, string(filepath.Separator)), dirRoot, fileNumber)
if err != nil {
return nil, err
diff --git a/builder/builder2v2/build_package.go b/builder/builder2v2/build_package.go
index dcba0f7..640f9c7 100644
--- a/builder/builder2v2/build_package.go
+++ b/builder/builder2v2/build_package.go
@@ -8,6 +8,7 @@ import (
"github.com/spdx/tools-golang/utils"
"path/filepath"
"regexp"
+ "runtime"
)
// BuildPackageSection2_2 creates an SPDX Package (version 2.2), returning
@@ -19,6 +20,7 @@ func BuildPackageSection2_2(packageName string, dirRoot string, pathsIgnore []st
// build the file section first, so we'll have it available
// for calculating the package verification code
filepaths, err := utils.GetAllFilePaths(dirRoot, pathsIgnore)
+ osType := runtime.GOOS
if err != nil {
return nil, err
@@ -28,11 +30,20 @@ func BuildPackageSection2_2(packageName string, dirRoot string, pathsIgnore []st
if ok != nil {
return nil, err
}
+ dirRootLen := 0
+ if osType == "windows" {
+ dirRootLen = len(dirRoot)
+ }
files := map[spdx.ElementID]*spdx.File2_2{}
fileNumber := 0
for _, fp := range filepaths {
- newFilePatch := filepath.FromSlash("." + fp)
+ newFilePatch := ""
+ if osType == "windows" {
+ newFilePatch = filepath.FromSlash("." + fp[dirRootLen:])
+ } else {
+ newFilePatch = filepath.FromSlash("./" + fp)
+ }
newFile, err := BuildFileSection2_2(re.ReplaceAllLiteralString(newFilePatch, string(filepath.Separator)), dirRoot, fileNumber)
if err != nil {
return nil, err