mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-12 15:50:15 -08:00
refactor: use strings.SplitSeq instead of strings.Split in for-loop (#8983)
Signed-off-by: nikpivkin <nikita.pivkin@smartforce.io> Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
This commit is contained in:
@@ -36,10 +36,9 @@ func (Parser) Parse(r xio.ReadSeekerAt) ([]ftypes.Package, []ftypes.Dependency,
|
||||
name := strings.Join(dep[:2], ":")
|
||||
version, classPathsString, _ := strings.Cut(dep[2], "=")
|
||||
|
||||
classPaths := strings.Split(classPathsString, ",")
|
||||
dev := true
|
||||
|
||||
for _, classPath := range classPaths {
|
||||
for classPath := range strings.SplitSeq(classPathsString, ",") {
|
||||
if !strings.HasPrefix(classPath, "test") {
|
||||
dev = false
|
||||
break
|
||||
|
||||
@@ -123,12 +123,12 @@ func trim(s string) string {
|
||||
func parseLicenses(s string) string {
|
||||
// e.g. `"Ruby".freeze, "BSDL".freeze`
|
||||
// => {"\"Ruby\".freeze", "\"BSDL\".freeze"}
|
||||
ss := strings.Split(s, ",")
|
||||
ss := strings.SplitSeq(s, ",")
|
||||
|
||||
// e.g. {"\"Ruby\".freeze", "\"BSDL\".freeze"}
|
||||
// => {"Ruby", "BSDL"}
|
||||
var licenses []string
|
||||
for _, l := range ss {
|
||||
for l := range ss {
|
||||
licenses = append(licenses, trim(l))
|
||||
}
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@ func createFixedVersions(advisory dbTypes.Advisory) string {
|
||||
|
||||
var fixedVersions []string
|
||||
for _, version := range advisory.VulnerableVersions {
|
||||
for _, s := range strings.Split(version, ",") {
|
||||
for s := range strings.SplitSeq(version, ",") {
|
||||
s = strings.TrimSpace(s)
|
||||
if !strings.HasPrefix(s, "<=") && strings.HasPrefix(s, "<") {
|
||||
s = strings.TrimPrefix(s, "<")
|
||||
|
||||
@@ -151,8 +151,8 @@ func (a alpineCmdAnalyzer) parseCommand(command string, envs map[string]string)
|
||||
|
||||
command = strings.TrimPrefix(command, "/bin/sh -c")
|
||||
var commands []string
|
||||
for _, cmd := range strings.Split(command, "&&") {
|
||||
for _, c := range strings.Split(cmd, ";") {
|
||||
for cmd := range strings.SplitSeq(command, "&&") {
|
||||
for c := range strings.SplitSeq(cmd, ";") {
|
||||
commands = append(commands, strings.TrimSpace(c))
|
||||
}
|
||||
}
|
||||
@@ -162,7 +162,7 @@ func (a alpineCmdAnalyzer) parseCommand(command string, envs map[string]string)
|
||||
}
|
||||
|
||||
var add bool
|
||||
for _, field := range strings.Fields(cmd) {
|
||||
for field := range strings.FieldsSeq(cmd) {
|
||||
switch {
|
||||
case strings.HasPrefix(field, "-") || strings.HasPrefix(field, "."):
|
||||
continue
|
||||
|
||||
@@ -150,7 +150,7 @@ func (a alpinePkgAnalyzer) parseLicense(line string) []string {
|
||||
}
|
||||
|
||||
func (a alpinePkgAnalyzer) parseProvides(line, pkgID string, provides map[string]string) {
|
||||
for _, p := range strings.Fields(line[2:]) {
|
||||
for p := range strings.FieldsSeq(line[2:]) {
|
||||
p = a.trimRequirement(p)
|
||||
|
||||
// Assume name ("P:") and version ("V:") are defined before provides ("p:")
|
||||
|
||||
@@ -306,7 +306,7 @@ func (a dpkgAnalyzer) pkgID(name, version string) string {
|
||||
}
|
||||
|
||||
func (a dpkgAnalyzer) parseStatus(s string) bool {
|
||||
for _, ss := range strings.Fields(s) {
|
||||
for ss := range strings.FieldsSeq(s) {
|
||||
if ss == "deinstall" || ss == "purge" {
|
||||
return false
|
||||
}
|
||||
@@ -317,10 +317,9 @@ func (a dpkgAnalyzer) parseStatus(s string) bool {
|
||||
func (a dpkgAnalyzer) parseDepends(s string) []string {
|
||||
// e.g. passwd, debconf (>= 0.5) | debconf-2.0
|
||||
var dependencies []string
|
||||
depends := strings.Split(s, ",")
|
||||
for _, dep := range depends {
|
||||
for dep := range strings.SplitSeq(s, ",") {
|
||||
// e.g. gpgv | gpgv2 | gpgv1
|
||||
for _, d := range strings.Split(dep, "|") {
|
||||
for d := range strings.SplitSeq(dep, "|") {
|
||||
d = a.trimVersionRequirement(d)
|
||||
|
||||
// Store only uniq package names here
|
||||
|
||||
@@ -137,7 +137,7 @@ type Output struct {
|
||||
|
||||
func (o Output) Messages() []string {
|
||||
var messages []string
|
||||
for _, line := range strings.Split(o.b.String(), "\n") {
|
||||
for line := range strings.SplitSeq(o.b.String(), "\n") {
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ func adaptAccounts(deployment azure.Deployment) []storage.Account {
|
||||
|
||||
var bypasses []types.StringValue
|
||||
bypassProp := acl.GetMapValue("bypass")
|
||||
for _, bypass := range strings.Split(bypassProp.AsString(), ",") {
|
||||
for bypass := range strings.SplitSeq(bypassProp.AsString(), ",") {
|
||||
bypasses = append(bypasses, types.String(strings.TrimSpace(bypass), bypassProp.GetMetadata()))
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ func init() {
|
||||
marker = altMarker
|
||||
}
|
||||
|
||||
for _, partial := range bytes.Split(data, marker) {
|
||||
for partial := range bytes.SplitSeq(data, marker) {
|
||||
var result map[string]any
|
||||
if err := yaml.Unmarshal(partial, &result); err != nil {
|
||||
continue
|
||||
|
||||
@@ -87,9 +87,9 @@ func (n *node) decodeObjectToStruct(v reflect.Value) error {
|
||||
t := v.Type()
|
||||
for i := 0; i < t.NumField(); i++ {
|
||||
fv := t.Field(i)
|
||||
tags := strings.Split(fv.Tag.Get("json"), ",")
|
||||
|
||||
var tagName string
|
||||
for _, tag := range tags {
|
||||
for tag := range strings.SplitSeq(fv.Tag.Get("json"), ",") {
|
||||
if tag != "omitempty" && tag != "-" {
|
||||
tagName = tag
|
||||
}
|
||||
|
||||
@@ -31,13 +31,11 @@ func ResolveSplit(property *Property) (resolved *Property, success bool) {
|
||||
}
|
||||
|
||||
func createPropertyList(splitProp, delimiterProp, parent *Property) []*Property {
|
||||
|
||||
splitString := splitProp.AsString()
|
||||
delimiter := delimiterProp.AsString()
|
||||
|
||||
splits := strings.Split(splitString, delimiter)
|
||||
var props []*Property
|
||||
for _, split := range splits {
|
||||
for split := range strings.SplitSeq(splitString, delimiter) {
|
||||
props = append(props, parent.deriveResolved(cftypes.String, split))
|
||||
}
|
||||
return props
|
||||
|
||||
@@ -212,7 +212,7 @@ func parseYaml(_ context.Context, r io.Reader, _ string) (any, error) {
|
||||
marker = altMarker
|
||||
}
|
||||
|
||||
for _, partial := range strings.Split(string(contents), marker) {
|
||||
for partial := range strings.SplitSeq(string(contents), marker) {
|
||||
var target any
|
||||
if err := yaml.Unmarshal([]byte(partial), &target); err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -458,7 +458,7 @@ func (s *paramParser) Parse(str string) bool {
|
||||
str = str[idx+1:]
|
||||
|
||||
paramStr := strings.TrimSuffix(str, "]")
|
||||
for _, pair := range strings.Split(paramStr, ",") {
|
||||
for pair := range strings.SplitSeq(paramStr, ",") {
|
||||
parts := strings.Split(pair, "=")
|
||||
if len(parts) != 2 {
|
||||
continue
|
||||
|
||||
@@ -581,8 +581,8 @@ func osNameVersion(name string) (string, string) {
|
||||
var buffer bytes.Buffer
|
||||
var v string
|
||||
var err error
|
||||
parts := strings.Split(name, " ")
|
||||
for _, p := range parts {
|
||||
parts := strings.SplitSeq(name, " ")
|
||||
for p := range parts {
|
||||
_, err = version.Parse(p)
|
||||
if err != nil {
|
||||
buffer.WriteString(p + " ")
|
||||
|
||||
@@ -752,7 +752,7 @@ func LaxSplitLicenses(str string) []string {
|
||||
}
|
||||
var licenses []string
|
||||
str = versionRegexp.ReplaceAllString(str, "$1-$4")
|
||||
for _, s := range strings.Fields(str) {
|
||||
for s := range strings.FieldsSeq(str) {
|
||||
s = strings.Trim(s, "()")
|
||||
switch s {
|
||||
case "":
|
||||
|
||||
@@ -187,7 +187,7 @@ func TestSlogtest(t *testing.T) {
|
||||
}
|
||||
|
||||
results := func(*testing.T) map[string]any {
|
||||
for _, line := range strings.Split(buf.String(), "\n") {
|
||||
for line := range strings.SplitSeq(buf.String(), "\n") {
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
@@ -218,7 +218,7 @@ func parseLogLine(line string) (map[string]any, error) {
|
||||
m["msg"] = parts[1]
|
||||
|
||||
if len(parts) == 3 {
|
||||
for _, attr := range strings.Split(parts[2], " ") {
|
||||
for attr := range strings.SplitSeq(parts[2], " ") {
|
||||
kv := strings.SplitN(attr, "=", 2)
|
||||
if len(kv) == 2 {
|
||||
parseAttr(m, kv[0], kv[1])
|
||||
|
||||
@@ -352,8 +352,8 @@ func (*Marshaler) advisories(refs []string) *[]cdx.Advisory {
|
||||
|
||||
// trimNonUrlInfo returns first valid URL.
|
||||
func trimNonUrlInfo(ref string) string {
|
||||
ss := strings.Split(ref, " ")
|
||||
for _, s := range ss {
|
||||
ss := strings.SplitSeq(ref, " ")
|
||||
for s := range ss {
|
||||
if u, err := url.Parse(s); err == nil && u.Scheme != "" && u.Host != "" {
|
||||
return s
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user