diff options
| author | Shulhan <ms@kilabit.info> | 2026-01-15 19:26:39 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2026-01-15 19:26:39 +0700 |
| commit | 6b4b38ada45cd5b108ec6ecda680cb32d33542ea (patch) | |
| tree | c3fdb20b1f9eee4c6902d4106beff23d38a9f531 | |
| parent | 73252709ac8f73d1be5f9752d5f1dda79a9c85a4 (diff) | |
| download | spdxconv-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.go | 32 | ||||
| -rw-r--r-- | spdxconv_test.go | 11 |
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) |
