# SPDX-FileCopyrightText: 2020 Luke Granger-Brown # # SPDX-License-Identifier: Apache-2.0 { pkgs, ... }: let 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" { HG_REPO = hgRepo; MERCURIAL = pkgs.mercurial; } '' export HGPLAIN= mytmp=$(mktemp -d) pushd $mytmp ln -s $HG_REPO .hg echo -n "depot-$($MERCURIAL/bin/hg id --id -r.)" > $out popd rm -rf $mytmp ''; in builtins.readFile changesetDeriv