Merge "Add notdir implementation"

This commit is contained in:
Treehugger Robot 2021-11-17 20:58:24 +00:00 committed by Gerrit Code Review
commit dacbe7a5a2
2 changed files with 14 additions and 1 deletions

View File

@ -361,7 +361,7 @@ def _addsuffix(suffix, string_or_list):
def __words(string_or_list):
if type(string_or_list) == "list":
return string_or_list
return string_or_list.split()
return _mkstrip(string_or_list).split()
# Handle manipulation functions.
# A handle passed to a PCM consists of:
@ -485,6 +485,13 @@ def _filter(pattern, text):
res.append(w)
return res
def _notdir(paths):
"""Equivalent to the GNU make function $(notdir).
Returns the name of the file at the end of each path in paths.
"""
return " ".join([__base(w) for w in __words(paths)])
def __mk2regex(words):
"""Returns regular expression equivalent to Make pattern."""
@ -674,6 +681,7 @@ rblf = struct(
mkwarning = _mkwarning,
mkstrip = _mkstrip,
mksubst = _mksubst,
notdir = _notdir,
printvars = _printvars,
printglobals = _printglobals,
product_configuration = _product_configuration,

View File

@ -52,6 +52,11 @@ assert_eq(["from/a:to/a", "from/b:to/b"], rblf.product_copy_files_by_pattern("fr
assert_eq([], rblf.filter(["a", "", "b"], "f"))
assert_eq(["", "b"], rblf.filter_out(["a", "" ], ["a", "", "b"] ))
assert_eq("foo.c no_folder", rblf.notdir(["src/foo.c", "no_folder"]))
assert_eq("foo.c no_folder", rblf.notdir("src/foo.c no_folder"))
assert_eq("", rblf.notdir("/"))
assert_eq("", rblf.notdir(""))
(globals, config, globals_base) = rblf.product_configuration("test/device", init, version_defaults)
assert_eq(
{