From ac8d6441f9bc4c4230d5edbd30ab05bd3f55ebc4 Mon Sep 17 00:00:00 2001 From: Chad Austin Date: Wed, 18 Nov 2020 17:30:00 -0800 Subject: [PATCH] convert a path to valid glob syntax when prefetching Summary: Paths are not necessarily legal glob syntax. In particular, backslash is used for escaping. This caused problems on Windows, where we tried to pass a backslash-delimited path into `eden prefetch --no-prefetch`. Reviewed By: xavierd Differential Revision: D25072784 fbshipit-source-id: 9ce8e5ccc8f28581512c39d04922889da0bc1bf6 --- build/fbcode_builder/getdeps/copytree.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/build/fbcode_builder/getdeps/copytree.py b/build/fbcode_builder/getdeps/copytree.py index 37d17fb9c4..2790bc0d92 100644 --- a/build/fbcode_builder/getdeps/copytree.py +++ b/build/fbcode_builder/getdeps/copytree.py @@ -59,11 +59,9 @@ def prefetch_dir_if_eden(dirpath): root = find_eden_root(dirpath) if root is None: return - rel = os.path.relpath(dirpath, root) - print("Prefetching %s..." % rel) - subprocess.call( - ["edenfsctl", "prefetch", "--repo", root, "--silent", "%s/**" % rel] - ) + glob = f"{os.path.relpath(dirpath, root).replace(os.sep, '/')}/**" + print(f"Prefetching {glob}") + subprocess.call(["edenfsctl", "prefetch", "--repo", root, "--silent", glob]) PREFETCHED_DIRS.add(dirpath)