aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-01-15 19:26:39 +0700
committerShulhan <ms@kilabit.info>2026-01-15 19:26:39 +0700
commit6b4b38ada45cd5b108ec6ecda680cb32d33542ea (patch)
treec3fdb20b1f9eee4c6902d4106beff23d38a9f531
parent73252709ac8f73d1be5f9752d5f1dda79a9c85a4 (diff)
downloadspdxconv-6b4b38ada45cd5b108ec6ecda680cb32d33542ea.tar.xz
spdxconv: set the SCM only during scan command, not on New
The Apply command does not require SCM, so no need to initialize it in New.
-rw-r--r--spdxconv.go32
-rw-r--r--spdxconv_test.go11
2 files changed, 28 insertions, 15 deletions
diff --git a/spdxconv.go b/spdxconv.go
index 58f199d..8ffe29b 100644
--- a/spdxconv.go
+++ b/spdxconv.go
@@ -68,7 +68,10 @@ func Scan(path string) (err error) {
return fmt.Errorf(`%s: %w`, logp, err)
}
- conv.loadReuseConfig()
+ err = conv.prepareScan()
+ if err != nil {
+ return fmt.Errorf(`%s: %w`, logp, err)
+ }
var listFile []string
if conv.name == `` {
@@ -175,7 +178,9 @@ func New(path string) (conv *SPDXConv, err error) {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
- conv = &SPDXConv{}
+ conv = &SPDXConv{
+ scm: defaultNoSCM,
+ }
conv.curDir, err = os.Getwd()
if err != nil {
@@ -202,12 +207,21 @@ func New(path string) (conv *SPDXConv, err error) {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
+ return conv, nil
+}
+
+func (conv *SPDXConv) prepareScan() (err error) {
err = conv.scanForSCM(conv.dir, conv.curDir)
if err != nil {
- return nil, fmt.Errorf(`%s: %w`, logp, err)
+ return err
}
- return conv, nil
+ pathReuseToml := filepath.Join(conv.curDir, ReuseConfigFile)
+ conv.reuse, err = loadReuseConfig(pathReuseToml)
+ if err != nil {
+ return err
+ }
+ return nil
}
// loadConfig load the program [ConfigFile] from the current directory.
@@ -229,16 +243,6 @@ func (conv *SPDXConv) loadConfig(dir string) (err error) {
return nil
}
-// loadReuseConfig load the REUSE.toml configuration from current directory.
-func (conv *SPDXConv) loadReuseConfig() {
- path := filepath.Join(conv.curDir, ReuseConfigFile)
- var err error
- conv.reuse, err = loadReuseConfig(path)
- if err != nil {
- return
- }
-}
-
// scanForSCM scan for source-code management (SCM) from directory `dir` until
// the current working directory.
// Currently, only support git.
diff --git a/spdxconv_test.go b/spdxconv_test.go
index d2389e4..fe8ad1c 100644
--- a/spdxconv_test.go
+++ b/spdxconv_test.go
@@ -303,6 +303,10 @@ func TestSPDXConv_scanFile(t *testing.T) {
if err != nil {
t.Fatal(err)
}
+ err = conv.scanForSCM(conv.dir, conv.curDir)
+ if err != nil {
+ t.Fatal(err)
+ }
type testCase struct {
dir string
@@ -370,11 +374,16 @@ func TestSPDXConv_scanDir(t *testing.T) {
for _, tc = range listCase {
t.Run(tc.dir, func(tt *testing.T) {
tt.Chdir(tc.dir)
+
conv, err = New(`.`)
if err != nil {
tt.Fatal(err)
}
- conv.loadReuseConfig()
+ err = conv.prepareScan()
+ if err != nil {
+ t.Fatal(err)
+ }
+
got, err = conv.scanDir([]string{`.`})
if err != nil {
tt.Fatal(err)