aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java10
2 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java
index c76bf58b5b..55cd813d47 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
+import java.util.Date;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
@@ -78,6 +79,11 @@ public abstract class CompressedTarFunction implements Decompressor {
Files.copy(
tarStream, filename.getPathFile().toPath(), StandardCopyOption.REPLACE_EXISTING);
filename.chmod(entry.getMode());
+
+ // This can only be done on real files, not links, or it will skip the reader to
+ // the next "real" file to try to find the mod time info.
+ Date lastModified = entry.getLastModifiedDate();
+ filename.setLastModifiedTime(lastModified.getTime());
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
index 70e8a9f7d6..c20da5a8d9 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
@@ -527,7 +527,8 @@ public class SkylarkRepositoryContext {
@ParamType(type = String.class),
@ParamType(type = SkylarkList.class, generic1 = String.class),
},
- doc = "List of mirror URLs referencing the same file."
+ doc = "List of mirror URLs referencing the same file.",
+ named = true
),
@Param(
name = "output",
@@ -538,7 +539,8 @@ public class SkylarkRepositoryContext {
},
doc =
"path to the directory where the archive will be unpacked,"
- + " relative to the repository directory."
+ + " relative to the repository directory.",
+ defaultValue = "''"
),
@Param(
name = "sha256",
@@ -570,9 +572,9 @@ public class SkylarkRepositoryContext {
named = true,
doc =
"a directory prefix to strip from the extracted files."
- + "\nMany archives contain a top-level directory that contains alfiles in"
+ + "\nMany archives contain a top-level directory that contains all files in the"
+ " archive. Instead of needing to specify this prefix over and over in the"
- + " <code>build_file</code>, this field can be used to strip it extracted"
+ + " <code>build_file</code>, this field can be used to strip it from extracted"
+ " files."
),
}