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

Commit 335f594e authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Separate output from diagnostics in Starlark product configuration."

parents ad48e9cb e8652d4c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -200,7 +200,11 @@ ifndef RBC_PRODUCT_CONFIG
$(call import-products, $(current_product_makefile))
else
  rbcscript=build/soong/scripts/rbc-run
  rc := $(shell $(rbcscript) $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) >$(OUT_DIR)/rbctemp.mk || echo $$?)
  rc := $(shell $(rbcscript) $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) >$(OUT_DIR)/rbctemp.mk 2>$(OUT_DIR)/rbctemp.stderr || echo $$?)
  rbcerrors := $(file <(OUT_DIR)/rbctemp.stderr)
  ifneq (,$(rbcerrors))
    $(info $(rbcerrors))
  endif
  ifneq (,$(rc))
    $(error product configuration converter failed: $(rc))
  endif
+2 −2
Original line number Diff line number Diff line
@@ -462,11 +462,11 @@ def _mkerror(file, message = ""):

def _mkwarning(file, message = ""):
    """Prints warning."""
    print("%s: warning: %s" % (file, message))
    rblf_log(file, "warning", message, sep = ':')

def _mkinfo(file, message = ""):
    """Prints info."""
    print(message)
    rblf_log(message)


def __mkparse_pattern(pattern):
+4 −0
Original line number Diff line number Diff line
@@ -87,3 +87,7 @@ Returns *True* if *text* matches *pattern*.
Runs `sh -c "`*command*`"`, reads its output, converts all newlines into spaces, chops trailing newline returns this
string. This is equivalent to Make's
`shell` builtin function. *This function will be eventually removed*.

#### rblf_log(*arg*,..., sep=' ')

Same as `print` builtin but writes to stderr.
 No newline at end of file
+24 −0
Original line number Diff line number Diff line
@@ -259,6 +259,28 @@ func structFromEnv(env []string) *starlarkstruct.Struct {
	return starlarkstruct.FromStringDict(starlarkstruct.Default, sd)
}

func log(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
	sep := " "
	if err := starlark.UnpackArgs("print", nil, kwargs, "sep?", &sep); err != nil {
		return nil, err
	}
	for i, v := range args {
		if i > 0 {
			fmt.Fprint(os.Stderr, sep)
		}
		if s, ok := starlark.AsString(v); ok {
			fmt.Fprint(os.Stderr, s)
		} else if b, ok := v.(starlark.Bytes); ok {
			fmt.Fprint(os.Stderr, string(b))
		} else {
			fmt.Fprintf(os.Stderr, "%s", v)
		}
	}

	fmt.Fprintln(os.Stderr)
	return starlark.None, nil
}

func setup(env []string) {
	// Create the symbols that aid makefile conversion. See README.md
	builtins = starlark.StringDict{
@@ -273,6 +295,8 @@ func setup(env []string) {
		"rblf_regex": starlark.NewBuiltin("rblf_regex", regexMatch),
		// To convert makefile's $(shell cmd)
		"rblf_shell": starlark.NewBuiltin("rblf_shell", shell),
		// Output to stderr
		"rblf_log": starlark.NewBuiltin("rblf_log", log),
		// To convert makefile's $(wildcard foo*)
		"rblf_wildcard": starlark.NewBuiltin("rblf_wildcard", wildcard),
	}