diff --git a/src/nix/flake.cc b/src/nix/flake.cc index 351b2caaf..80ff111f1 100644 --- a/src/nix/flake.cc +++ b/src/nix/flake.cc @@ -1497,6 +1497,7 @@ struct CmdFlakePrefetch : FlakeCommand, MixJSON res["hash"] = hash.to_string(HashFormat::SRI, true); res["original"] = fetchers::attrsToJSON(resolvedRef.toAttrs()); res["locked"] = fetchers::attrsToJSON(lockedRef.toAttrs()); + res["locked"].erase("__final"); // internal for now printJSON(res); } else { notice("Downloaded '%s' to '%s' (hash '%s').", diff --git a/tests/functional/tarball.sh b/tests/functional/tarball.sh index 53807603c..6b09cf6a5 100755 --- a/tests/functional/tarball.sh +++ b/tests/functional/tarball.sh @@ -73,7 +73,8 @@ test_tarball .gz gzip # All entries in tree.tar.gz refer to the same file, and all have the same inode when unpacked by GNU tar. # We don't preserve the hard links, because that's an optimization we think is not worth the complexity, # so we only make sure that the contents are copied correctly. -nix flake prefetch --json "tarball+file://$(pwd)/tree.tar.gz" --out-link "$TEST_ROOT/result" +json=$(nix flake prefetch --json "tarball+file://$(pwd)/tree.tar.gz" --out-link "$TEST_ROOT/result") +[[ $json =~ ^'{"hash":"sha256-'.*'","locked":{"lastModified":'.*',"narHash":"sha256-'.*'","type":"tarball","url":"file:///'.*'/tree.tar.gz"},"original":{"type":"tarball","url":"file:///'.*'/tree.tar.gz"},"storePath":"'.*'/store/'.*'-source"}'$ ]] [[ $(cat "$TEST_ROOT/result/a/b/foo") = bar ]] [[ $(cat "$TEST_ROOT/result/a/b/xyzzy") = bar ]] [[ $(cat "$TEST_ROOT/result/a/yyy") = bar ]]