Implement File.is_symlink.
For symmetry with File.is_directory.
Fixes #11209.
PiperOrigin-RevId: 690652872
Change-Id: I4e93cb18e2469819cfa46f3c0685376093fc455e
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
index 88808bd..76d663d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkCustomCommandLine.java
@@ -1341,6 +1341,11 @@
}
@Override
+ public boolean isSymlink() {
+ return false;
+ }
+
+ @Override
public String getRunfilesPathString() {
PathFragment relativePath = execPath.relativeTo(fileset.getExecPath());
return fileset.getRunfilesPath().getRelative(relativePath).getPathString();
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/FileApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/FileApi.java
index 90b5700..4a3bd83 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/FileApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/FileApi.java
@@ -90,10 +90,22 @@
@StarlarkMethod(
name = "is_directory",
structField = true,
- doc = "Returns true if this is a directory.")
+ doc =
+ "Returns true if this is a directory. This reflects the type the file was declared as"
+ + " (i.e. ctx.actions.declare_directory), not its type on the filesystem, which might"
+ + " differ.")
boolean isDirectory();
@StarlarkMethod(
+ name = "is_symlink",
+ structField = true,
+ doc =
+ "Returns true if this is a directory. This reflects the type the file was declared as"
+ + " (i.e. ctx.actions.declare_symlink), not its type on the filesystem, which might"
+ + " differ.")
+ boolean isSymlink();
+
+ @StarlarkMethod(
name = "short_path",
structField = true,
doc =