Skip to content

Commit b610fa5

Browse files
authored
deps: remove trivy/pkg/cache import, replace with local helper (#2478)
Replace cache.DefaultDir() with defaultTrivyCacheDir() using only stdlib (os.UserCacheDir + filepath.Join). This removes the heavy trivy/pkg/cache dependency and its transitive imports (disk, ext4, xfs, zap, twirp, etc.), shrinking the full binary. Suggested-by: shino Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d2acdcd commit b610fa5

File tree

6 files changed

+14
-17
lines changed

6 files changed

+14
-17
lines changed

go.mod

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ require (
132132
github.com/blang/semver/v4 v4.0.0 // indirect
133133
github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect
134134
github.com/briandowns/spinner v1.23.2 // indirect
135-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
136135
github.com/cespare/xxhash/v2 v2.3.0 // indirect
137136
github.com/chai2010/gettext-go v1.0.2 // indirect
138137
github.com/cheggaaa/pb/v3 v3.1.7 // indirect
@@ -217,7 +216,6 @@ require (
217216
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
218217
github.com/hashicorp/go-getter v1.8.3 // indirect
219218
github.com/hashicorp/go-multierror v1.1.1 // indirect
220-
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
221219
github.com/hashicorp/hcl/v2 v2.24.0 // indirect
222220
github.com/huandu/xstrings v1.5.0 // indirect
223221
github.com/inconshreveable/log15 v3.0.0-testing.5+incompatible // indirect
@@ -249,11 +247,7 @@ require (
249247
github.com/lestrrat-go/option/v2 v2.0.0 // indirect
250248
github.com/lib/pq v1.10.9 // indirect
251249
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
252-
github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect
253-
github.com/masahiro331/go-disk v0.0.0-20240625071113-56c933208fee // indirect
254-
github.com/masahiro331/go-ext4-filesystem v0.0.0-20240620024024-ca14e6327bbd // indirect
255250
github.com/masahiro331/go-mvn-version v0.0.0-20250131095131-f4974fa13b8a // indirect
256-
github.com/masahiro331/go-xfs-filesystem v0.0.0-20231205045356-1b22259a6c44 // indirect
257251
github.com/mattn/go-colorable v0.1.14 // indirect
258252
github.com/mattn/go-isatty v0.0.20 // indirect
259253
github.com/mattn/go-runewidth v0.0.19 // indirect
@@ -323,7 +317,6 @@ require (
323317
github.com/tchap/go-patricia/v2 v2.3.3 // indirect
324318
github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 // indirect
325319
github.com/toqueteos/webbrowser v1.2.0 // indirect
326-
github.com/twitchtv/twirp v8.1.3+incompatible // indirect
327320
github.com/ulikunitz/xz v0.5.15 // indirect
328321
github.com/valyala/fastjson v1.6.4 // indirect
329322
github.com/vbatts/tar-split v0.12.2 // indirect
@@ -348,8 +341,6 @@ require (
348341
go.opentelemetry.io/otel/sdk v1.40.0 // indirect
349342
go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect
350343
go.opentelemetry.io/otel/trace v1.40.0 // indirect
351-
go.uber.org/multierr v1.11.0 // indirect
352-
go.uber.org/zap v1.27.1 // indirect
353344
go.yaml.in/yaml/v2 v2.4.3 // indirect
354345
go.yaml.in/yaml/v3 v3.0.4 // indirect
355346
golang.org/x/crypto v0.48.0 // indirect

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -871,8 +871,6 @@ github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 h1:2f304B10
871871
github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0/go.mod h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE=
872872
github.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9rrstGQ=
873873
github.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM=
874-
github.com/twitchtv/twirp v8.1.3+incompatible h1:+F4TdErPgSUbMZMwp13Q/KgDVuI7HJXP61mNV3/7iuU=
875-
github.com/twitchtv/twirp v8.1.3+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A=
876874
github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
877875
github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
878876
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=

subcmds/report.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"os"
1010
"path/filepath"
1111

12-
"github.com/aquasecurity/trivy/pkg/cache"
1312
"github.com/google/subcommands"
1413
"github.com/k0kubun/pp"
1514

@@ -182,7 +181,7 @@ func (p *ReportCmd) SetFlags(f *flag.FlagSet) {
182181
f.BoolVar(&config.Conf.Pipe, "pipe", false, "Use args passed via PIPE")
183182

184183
f.StringVar(&config.Conf.TrivyCacheDBDir, "trivy-cachedb-dir",
185-
cache.DefaultDir(), "/path/to/dir")
184+
defaultTrivyCacheDir(), "/path/to/dir")
186185

187186
config.Conf.TrivyDBRepositories = detector.DefaultTrivyDBRepositories
188187
dbRepos := stringArrayFlag{target: &config.Conf.TrivyDBRepositories}

subcmds/report_windows.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"os"
99
"path/filepath"
1010

11-
"github.com/aquasecurity/trivy/pkg/cache"
1211
"github.com/google/subcommands"
1312
"github.com/k0kubun/pp"
1413

@@ -179,7 +178,7 @@ func (p *ReportCmd) SetFlags(f *flag.FlagSet) {
179178
f.BoolVar(&config.Conf.Pipe, "pipe", false, "Use args passed via PIPE")
180179

181180
f.StringVar(&config.Conf.TrivyCacheDBDir, "trivy-cachedb-dir",
182-
cache.DefaultDir(), "/path/to/dir")
181+
defaultTrivyCacheDir(), "/path/to/dir")
183182

184183
config.Conf.TrivyDBRepositories = detector.DefaultTrivyDBRepositories
185184
dbRepos := stringArrayFlag{target: &config.Conf.TrivyDBRepositories}

subcmds/tui.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"os"
99
"path/filepath"
1010

11-
"github.com/aquasecurity/trivy/pkg/cache"
1211
"github.com/google/subcommands"
1312

1413
"github.com/future-architect/vuls/config"
@@ -107,7 +106,7 @@ func (p *TuiCmd) SetFlags(f *flag.FlagSet) {
107106
f.BoolVar(&config.Conf.Pipe, "pipe", false, "Use stdin via PIPE")
108107

109108
f.StringVar(&config.Conf.TrivyCacheDBDir, "trivy-cachedb-dir",
110-
cache.DefaultDir(), "/path/to/dir")
109+
defaultTrivyCacheDir(), "/path/to/dir")
111110

112111
config.Conf.TrivyDBRepositories = detector.DefaultTrivyDBRepositories
113112
dbRepos := stringArrayFlag{target: &config.Conf.TrivyDBRepositories}

subcmds/util.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,14 @@ func mkdirDotVuls() error {
2020
}
2121
return nil
2222
}
23+
24+
// defaultTrivyCacheDir returns the default Trivy cache directory.
25+
// This replaces trivy/pkg/cache.DefaultDir() to avoid importing the heavy
26+
// cache package, which pulls in DB and OCI dependencies.
27+
func defaultTrivyCacheDir() string {
28+
tmpDir, err := os.UserCacheDir()
29+
if err != nil {
30+
tmpDir = os.TempDir()
31+
}
32+
return filepath.Join(tmpDir, "trivy")
33+
}

0 commit comments

Comments
 (0)