func GenerateNotice()

in dev-tools/mage/notice.go [29:57]


func GenerateNotice(overrides, rules, noticeTemplate string) error {
	mg.Deps(InstallGoNoticeGen, Deps.CheckModuleTidy)

	err := gotool.Mod.Download(gotool.Download.All())
	if err != nil {
		return fmt.Errorf("error while downloading dependencies: %w", err)
	}

	// Ensure the go.mod file is left unchanged after go mod download all runs.
	// go mod download will modify go.sum in a way that conflicts with go mod tidy.
	// https://github.com/golang/go/issues/43994#issuecomment-770053099
	defer gotool.Mod.Tidy() //nolint:errcheck // No value in handling this error.

	out, _ := gotool.ListDepsForNotice()
	depsFile, _ := os.CreateTemp("", "depsout")
	defer os.Remove(depsFile.Name())
	_, _ = depsFile.Write([]byte(out))
	depsFile.Close()

	generator := gotool.NoticeGenerator
	return generator(
		generator.Dependencies(depsFile.Name()),
		generator.IncludeIndirect(),
		generator.Overrides(overrides),
		generator.Rules(rules),
		generator.NoticeTemplate(noticeTemplate),
		generator.NoticeOutput("NOTICE.txt"),
	)
}