aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-07-13 08:00:18 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-13 08:02:11 -0700
commit79aa7b4d67893ad347ab40d06323dfe5503ac51e (patch)
treeecd3120a72f9fb82e1ba1e9cae85d2ae2e863b65 /src/main/java/com/google/devtools/build
parentbbf8c996b9c45e04c047e8ddb22454b29fae7f6b (diff)
Fix Skydoc's following of imports to correctly process absolute labels.
Previously, any absolute label (starting with double slash) would be converted to an absolute path, instead of a path relative to the current workspace directory. RELNOTES: None. PiperOrigin-RevId: 204472080
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/skydoc/SkydocMain.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java b/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
index 2f0a7f4932..01fff20892 100644
--- a/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
+++ b/src/main/java/com/google/devtools/build/skydoc/SkydocMain.java
@@ -188,6 +188,10 @@ public class SkydocMain {
ImmutableMap.Builder<String, RuleInfo> ruleInfoMap,
ImmutableList.Builder<RuleInfo> unknownNamedRules)
throws InterruptedException, IOException {
+ if (path.isAbsolute()) {
+ path = Paths.get(PathFragment.create(path.toString()).toRelative().getPathString());
+ }
+
List<RuleInfo> ruleInfoList = new ArrayList<>();
Environment env = recursiveEval(path, ruleInfoList);
@@ -253,7 +257,7 @@ public class SkydocMain {
private static Path fromPathFragment(Path fromPath, PathFragment pathFragment) {
return pathFragment.isAbsolute()
- ? Paths.get(pathFragment.getPathString())
+ ? Paths.get(pathFragment.toRelative().getPathString())
: fromPath.resolveSibling(pathFragment.getPathString());
}