diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2022-02-18 16:56:35 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2022-03-15 12:32:11 +0100 |
commit | 34e20c164cd512c10af99803215e32889a6d965b (patch) | |
tree | 5bde78a00e6681bc40c9f31d05dfbcab4f7fdbd2 /src/libutil/archive.hh | |
parent | a61809722fc85a803d412d66667e02e35a8d229a (diff) |
libfetchers/path: set `lastModified` to path's mtime
When importing e.g. a local `nixpkgs` in a flake to test a change like
{
inputs.nixpkgs.url = path:/home/ma27/Projects/nixpkgs;
outputs = /* ... */
}
then the input is missing a `lastModified`-field that's e.g. used in
`nixpkgs.lib.nixosSystem`. Due to the missing `lastMoified`-field, the
mtime is set to 19700101:
result -> /nix/store/b7dg1lmmsill2rsgyv2w7b6cnmixkvc1-nixos-system-nixos-22.05.19700101.dirty
With this change, the `path`-fetcher now sets a `lastModified` attribute
to the `mtime` just like it's the case in the `tarball`-fetcher already.
When building NixOS systems with `nixpkgs` being a `path`-input and this
patch, the output-path now looks like this:
result -> /nix/store/ld2qf9c1s98dxmiwcaq5vn9k5ylzrm1s-nixos-system-nixos-22.05.20220217.dirty
Diffstat (limited to 'src/libutil/archive.hh')
-rw-r--r-- | src/libutil/archive.hh | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libutil/archive.hh b/src/libutil/archive.hh index fca351605..79ce08df0 100644 --- a/src/libutil/archive.hh +++ b/src/libutil/archive.hh @@ -48,6 +48,10 @@ namespace nix { void dumpPath(const Path & path, Sink & sink, PathFilter & filter = defaultPathFilter); +/* Same as `void dumpPath()`, but returns the last modified date of the path */ +time_t dumpPathAndGetMtime(const Path & path, Sink & sink, + PathFilter & filter = defaultPathFilter); + void dumpString(std::string_view s, Sink & sink); /* FIXME: fix this API, it sucks. */ |