Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49dd4f75 authored by Bob Badour's avatar Bob Badour
Browse files

Add support for a product name as well as title.

Bug: 68860345
Bug: 151177513
Bug: 151953481
Bug: 213388645
Bug: 210912771

Test: m all
Test: m systemlicense
Test: m htmlnotice; out/soong/host/linux-x85/htmlnotice ...
Test: m textnotice; out/soong/host/linux-x85/textnotice ...
Test: m xmlnotice; out/soong/host/linux-x85/xmlnotice ...

where ... is the path to the .meta_lic file for the system image. In my
case if

$ export PRODUCT=$(realpath $ANDROID_PRODUCT_OUT --relative-to=$PWD)

... can be expressed as:

${PRODUCT}/gen/META/lic_intermediates/${PRODUCT}/system.img.meta_lic

Change-Id: Id5b2ebe3752081e3a89bba1d717cf103f7846043
parent 339edb60
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ var (
	outputFile  = flag.String("o", "-", "Where to write the NOTICE text file. (default stdout)")
	depsFile    = flag.String("d", "", "Where to write the deps file")
	includeTOC  = flag.Bool("toc", true, "Whether to include a table of contents.")
	product     = flag.String("product", "", "The name of the product for which the notice is generated.")
	stripPrefix = newMultiString("strip_prefix", "Prefix to remove from paths. i.e. path to root (multiple allowed)")
	title       = flag.String("title", "", "The title of the notice file.")

@@ -47,6 +48,7 @@ type context struct {
	stderr      io.Writer
	rootFS      fs.FS
	includeTOC  bool
	product     string
	stripPrefix []string
	title       string
	deps        *[]string
@@ -57,7 +59,7 @@ func (ctx context) strip(installPath string) string {
		if strings.HasPrefix(installPath, prefix) {
			p := strings.TrimPrefix(installPath, prefix)
			if 0 == len(p) {
				p = ctx.title
				p = ctx.product
			}
			if 0 == len(p) {
				continue
@@ -139,7 +141,7 @@ func main() {

	var deps []string

	ctx := &context{ofile, os.Stderr, os.DirFS("."), *includeTOC, *stripPrefix, *title, &deps}
	ctx := &context{ofile, os.Stderr, os.DirFS("."), *includeTOC, *product, *stripPrefix, *title, &deps}

	err := htmlNotice(ctx, flag.Args()...)
	if err != nil {
@@ -204,12 +206,16 @@ func htmlNotice(ctx *context, files ...string) error {
	fmt.Fprintln(ctx.stdout, "</style>")
	if 0 < len(ctx.title) {
		fmt.Fprintf(ctx.stdout, "<title>%s</title>\n", html.EscapeString(ctx.title))
	} else if 0 < len(ctx.product) {
		fmt.Fprintf(ctx.stdout, "<title>%s</title>\n", html.EscapeString(ctx.product))
	}
	fmt.Fprintln(ctx.stdout, "</head>")
	fmt.Fprintln(ctx.stdout, "<body>")

	if 0 < len(ctx.title) {
		fmt.Fprintf(ctx.stdout, "  <h1>%s</h1>\n", html.EscapeString(ctx.title))
	} else if 0 < len(ctx.product) {
		fmt.Fprintf(ctx.stdout, "  <h1>%s</h1>\n", html.EscapeString(ctx.product))
	}
	ids := make(map[string]string)
	if ctx.includeTOC {
+1 −1
Original line number Diff line number Diff line
@@ -651,7 +651,7 @@ func Test(t *testing.T) {

			var deps []string

			ctx := context{stdout, stderr, os.DirFS("."), tt.includeTOC, []string{tt.stripPrefix}, tt.title, &deps}
			ctx := context{stdout, stderr, os.DirFS("."), tt.includeTOC, "", []string{tt.stripPrefix}, tt.title, &deps}

			err := htmlNotice(&ctx, rootFiles...)
			if err != nil {
+7 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import (
var (
	outputFile  = flag.String("o", "-", "Where to write the NOTICE text file. (default stdout)")
	depsFile    = flag.String("d", "", "Where to write the deps file")
	product     = flag.String("product", "", "The name of the product for which the notice is generated.")
	stripPrefix = newMultiString("strip_prefix", "Prefix to remove from paths. i.e. path to root (multiple allowed)")
	title       = flag.String("title", "", "The title of the notice file.")

@@ -44,6 +45,7 @@ type context struct {
	stdout      io.Writer
	stderr      io.Writer
	rootFS      fs.FS
	product     string
	stripPrefix []string
	title       string
	deps        *[]string
@@ -54,7 +56,7 @@ func (ctx context) strip(installPath string) string {
		if strings.HasPrefix(installPath, prefix) {
			p := strings.TrimPrefix(installPath, prefix)
			if 0 == len(p) {
				p = ctx.title
				p = ctx.product
			}
			if 0 == len(p) {
				continue
@@ -135,7 +137,7 @@ func main() {

	var deps []string

	ctx := &context{ofile, os.Stderr, os.DirFS("."), *stripPrefix, *title, &deps}
	ctx := &context{ofile, os.Stderr, os.DirFS("."), *product, *stripPrefix, *title, &deps}

	err := textNotice(ctx, flag.Args()...)
	if err != nil {
@@ -190,6 +192,9 @@ func textNotice(ctx *context, files ...string) error {
		return fmt.Errorf("Unable to read license text file(s) for %q: %v\n", files, err)
	}

	if 0 < len(ctx.title) {
		fmt.Fprintf(ctx.stdout, "%s\n\n", ctx.title)
	}
	for h := range ni.Hashes() {
		fmt.Fprintln(ctx.stdout, "==============================================================================")
		for _, libName := range ni.HashLibs(h) {
+1 −1
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ func Test(t *testing.T) {

			var deps []string

			ctx := context{stdout, stderr, os.DirFS("."), []string{tt.stripPrefix}, "", &deps}
			ctx := context{stdout, stderr, os.DirFS("."), "", []string{tt.stripPrefix}, "", &deps}

			err := textNotice(&ctx, rootFiles...)
			if err != nil {
+4 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import (
var (
	outputFile  = flag.String("o", "-", "Where to write the NOTICE xml or xml.gz file. (default stdout)")
	depsFile    = flag.String("d", "", "Where to write the deps file")
	product     = flag.String("product", "", "The name of the product for which the notice is generated.")
	stripPrefix = newMultiString("strip_prefix", "Prefix to remove from paths. i.e. path to root (multiple allowed)")
	title       = flag.String("title", "", "The title of the notice file.")

@@ -45,6 +46,7 @@ type context struct {
	stdout      io.Writer
	stderr      io.Writer
	rootFS      fs.FS
	product     string
	stripPrefix []string
	title       string
	deps        *[]string
@@ -55,7 +57,7 @@ func (ctx context) strip(installPath string) string {
		if strings.HasPrefix(installPath, prefix) {
			p := strings.TrimPrefix(installPath, prefix)
			if 0 == len(p) {
				p = ctx.title
				p = ctx.product
			}
			if 0 == len(p) {
				continue
@@ -137,7 +139,7 @@ func main() {

	var deps []string

	ctx := &context{ofile, os.Stderr, os.DirFS("."), *stripPrefix, *title, &deps}
	ctx := &context{ofile, os.Stderr, os.DirFS("."), *product, *stripPrefix, *title, &deps}

	err := xmlNotice(ctx, flag.Args()...)
	if err != nil {
Loading