func decode()

in util/licenses/licenses.go [63:102]


func decode() {
	buffer := bytes.NewBuffer(licensesJSON)
	decoder := json.NewDecoder(buffer)
	if err := decoder.Decode(&LicenseList); err != nil {
		panic(fmt.Sprintf("error decoding spdx license list: %+v", err))
	}
	if len(LicenseList.Licenses) == 0 {
		panic(fmt.Sprintf("could not find any licenses to decode"))
	}

	// debug
	//dirEntry, err := licensesTextJSON.ReadDir("license-list-data/json/details")
	//if err != nil {
	//	panic(fmt.Sprintf("error: %+v", err))
	//}
	//for _, x := range dirEntry {
	//	fmt.Printf("Name: %+v\n", x.Name())
	//}

	for _, license := range LicenseList.Licenses {
		//fmt.Printf("ID: %+v\n", license.LicenseID) // debug

		f := "license-list-data/json/details/" + strings.TrimPrefix(license.Reference, "./")
		data, err := licensesTextJSON.ReadFile(f)
		if err != nil {
			panic(fmt.Sprintf("error reading spdx license file: %s, error: %+v", f, err))
		}
		//fmt.Printf("Data: %s\n", string(data)) // debug
		buffer := bytes.NewBuffer(data)
		decoder := json.NewDecoder(buffer)

		if err := decoder.Decode(&license); err != nil {
			panic(fmt.Sprintf("error decoding spdx license text: %+v", err))
		}
		//fmt.Printf("Text: %+v\n", license.Text) // debug
		if license.Text == "" {
			panic(fmt.Sprintf("could not find any license text for: %s", license.LicenseID))
		}
	}
}