depot: make version build faster

We don't need the entire depot to get the build version.
This commit is contained in:
Luke Granger-Brown 2021-03-28 01:14:59 +00:00
parent b2e2f965c5
commit ea927a8c34

View file

@ -5,7 +5,20 @@
{ pkgs, ... }: { pkgs, ... }:
let let
hgRepo = builtins.path { path = ./.hg; name = "depot-hg"; }; inherit (pkgs) lib;
inherit (builtins) elemAt match length;
hgRelativePath = path: elemAt (match ".*/\\.hg/(.*)$" path) 0;
hgDepth = path: length (lib.splitString "/" (hgRelativePath path));
hgRepo = builtins.path {
path = ./.hg;
name = "depot-hg";
filter = path: type: (type == "directory" && (
hgRelativePath path == "store" ||
hgRelativePath path == "merge" ||
hgRelativePath path == "cache")) ||
(type == "regular" && hgDepth path == 1) ||
(type == "regular" && hgDepth path == 2);
};
changesetDeriv = pkgs.runCommandLocal "depot-version" { changesetDeriv = pkgs.runCommandLocal "depot-version" {
HG_REPO = hgRepo; HG_REPO = hgRepo;
MERCURIAL = pkgs.mercurial; MERCURIAL = pkgs.mercurial;