diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java index 021845cbc6..2fa4494192 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java @@ -129,6 +129,14 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S return repository.getPathFragment().getRelative(pkgName); } + /** + * Returns the runfiles path for this repository (relative to the x.runfiles/main-repo/ + * directory). + */ + public PathFragment getRunfilesPath() { + return getRepository().getRunfilesPath().getRelative(getPackageFragment()); + } + public PackageIdentifier makeAbsolute() { if (!repository.isDefault()) { return this; diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java index 9a4e5a7ca1..6b89a6ee7a 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java @@ -202,6 +202,16 @@ public final class RepositoryName implements Serializable { } /** + * Returns the runfiles path for this repository (relative to the x.runfiles/main-repo/ + * directory). If we don't know the name of this repo (i.e., it is in the main repository), + * return an empty path fragment. + */ + public PathFragment getRunfilesPath() { + return isDefault() || isMain() + ? PathFragment.EMPTY_FRAGMENT : new PathFragment("..").getRelative(strippedName()); + } + + /** * Returns the repository name, with leading "{@literal @}" (or "" for the default repository). */ @Override |