func()

in cmd/csv2cpe/csv2cpe.go [163:214]


func (acm *AttributeColumnMap) CPE(cols []string, lower, na bool) (string, error) {
	var err error
	var attr *wfn.Attributes
	if na {
		attr = wfn.NewAttributesWithNA()
	} else {
		attr = wfn.NewAttributesWithAny()
	}

	m := map[int]*string{
		acm.Part:      &attr.Part,
		acm.Vendor:    &attr.Vendor,
		acm.Product:   &attr.Product,
		acm.Version:   &attr.Version,
		acm.Update:    &attr.Update,
		acm.Edition:   &attr.Edition,
		acm.SWEdition: &attr.SWEdition,
		acm.TargetSW:  &attr.TargetSW,
		acm.TargetHW:  &attr.TargetHW,
		acm.Other:     &attr.Other,
		acm.Language:  &attr.Language,
	}

	delete(m, 0)

	for i, v := range m {
		j := i - 1

		if j >= len(cols) {
			continue
		}

		col := cols[j]

		if lower {
			col = strings.ToLower(col)
		}

		if i == acm.Version {
			for strings.HasSuffix(col, ".") {
				col = strings.TrimSuffix(col, ".")
			}
		}

		*v, err = wfn.WFNize(col)
		if err != nil {
			return "", err
		}
	}

	return attr.BindToURI(), nil
}