Merge "Correct abspath implementation"
This commit is contained in:
@@ -405,12 +405,26 @@ def _soong_config_get(g, nsname, var):
|
|||||||
"""Gets to the value of the variable in the namespace."""
|
"""Gets to the value of the variable in the namespace."""
|
||||||
return g.get(_soong_config_namespaces_key, {}).get(nsname, {}).get(var, None)
|
return g.get(_soong_config_namespaces_key, {}).get(nsname, {}).get(var, None)
|
||||||
|
|
||||||
|
def _abspath(paths):
|
||||||
def _abspath(path):
|
|
||||||
"""Provided for compatibility, to be removed later."""
|
"""Provided for compatibility, to be removed later."""
|
||||||
if type(path) == "list":
|
cwd = rblf_shell('pwd')
|
||||||
path = " ".join(path)
|
results = []
|
||||||
return rblf_shell("realpath "+path)
|
for path in __words(paths):
|
||||||
|
if path[0] != "/":
|
||||||
|
path = cwd + "/" + path
|
||||||
|
|
||||||
|
resultparts = []
|
||||||
|
for part in path.split('/'):
|
||||||
|
if part == "." or part == "":
|
||||||
|
continue
|
||||||
|
elif part == "..":
|
||||||
|
if resultparts:
|
||||||
|
resultparts.pop()
|
||||||
|
else:
|
||||||
|
resultparts.append(part)
|
||||||
|
results.append("/" + "/".join(resultparts))
|
||||||
|
|
||||||
|
return " ".join(results)
|
||||||
|
|
||||||
|
|
||||||
def _addprefix(prefix, string_or_list):
|
def _addprefix(prefix, string_or_list):
|
||||||
|
@@ -73,6 +73,14 @@ assert_eq("foo.c no_folder", rblf.notdir("src/foo.c no_folder"))
|
|||||||
assert_eq("", rblf.notdir("/"))
|
assert_eq("", rblf.notdir("/"))
|
||||||
assert_eq("", rblf.notdir(""))
|
assert_eq("", rblf.notdir(""))
|
||||||
|
|
||||||
|
cwd = rblf_shell('pwd')
|
||||||
|
assert_eq(cwd+"/foo/bar", rblf.abspath("foo/bar"))
|
||||||
|
assert_eq(cwd+"/bar", rblf.abspath("foo/.././bar"))
|
||||||
|
assert_eq(cwd+"/bar", rblf.abspath("foo/..////bar//"))
|
||||||
|
assert_eq("/foo/baz", rblf.abspath("/foo/bar/../baz"))
|
||||||
|
assert_eq(cwd+"/foo/bar "+cwd+"/foo/baz", rblf.abspath("foo/bar foo/baz"))
|
||||||
|
assert_eq("/baz", rblf.abspath("/../../../../../../../../../../../../../../../../baz"))
|
||||||
|
|
||||||
assert_eq(
|
assert_eq(
|
||||||
["build/make/tests/board.rbc", "build/make/tests/board_input_vars.rbc"],
|
["build/make/tests/board.rbc", "build/make/tests/board_input_vars.rbc"],
|
||||||
rblf.expand_wildcard("build/make/tests/board*.rbc")
|
rblf.expand_wildcard("build/make/tests/board*.rbc")
|
||||||
|
Reference in New Issue
Block a user