aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2015-06-29 13:53:20 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-06-29 16:40:09 +0000
commit67032569dc676bd169e070a5b63accb8c78dec83 (patch)
tree88dbd9a6261061bb63e0005ffe715762c37cfb77 /src/main/java/com/google
parent944fb9c6f79703db360404c085729449d8ff4dbf (diff)
Allow / in repository names
-- MOS_MIGRATED_REVID=97125970
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageIdentifier.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/packages/PackageIdentifier.java
index 8f5d45b748..f2f5b8e0e0 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageIdentifier.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageIdentifier.java
@@ -82,14 +82,20 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S
return "empty workspace name";
}
- // Check for any character outside of [/0-9A-Z_a-z-]. Try to evaluate the
+ // Check for any character outside of [/0-9A-Z_a-z-._]. Try to evaluate the
// conditional quickly (by looking in decreasing order of character class
// likelihood).
+ if (name.startsWith("@/") || name.endsWith("/")) {
+ return "workspace names cannot start nor end with '/'";
+ } else if (name.contains("//")) {
+ return "workspace names cannot contain multiple '/'s in a row";
+ }
+
for (int i = name.length() - 1; i >= 1; --i) {
char c = name.charAt(i);
- if ((c < 'a' || c > 'z') && c != '_' && c != '-'
+ if ((c < 'a' || c > 'z') && c != '_' && c != '-' && c != '/' && c != '.'
&& (c < '0' || c > '9') && (c < 'A' || c > 'Z')) {
- return "workspace names may contain only A-Z, a-z, 0-9, '-' and '_'";
+ return "workspace names may contain only A-Z, a-z, 0-9, '-', '_', '.', and '/'";
}
}
return null;