From 63b5a4e98936d7aa0c417d2a6fc8af7ac9839dbc Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Tue, 30 Apr 2024 23:04:10 +0200 Subject: [PATCH] Try pkg.meta.position before unsafeGetAttrPos Fixes `nixpkgs.mpvScripts.*`, discovered while reviewing https://github.com/NixOS/nixpkgs/pull/308062 --- nix_update/eval.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/nix_update/eval.py b/nix_update/eval.py index 12d9210..b2b3fde 100644 --- a/nix_update/eval.py +++ b/nix_update/eval.py @@ -142,13 +142,22 @@ def eval_expression( return f""" let {indent(dedent(let_bindings), " ")} + positionFromMeta = pkg: let + parts = builtins.match "(.*):([0-9]+)" pkg.meta.position; + in {{ + file = builtins.elemAt parts 0; + line = builtins.fromJSON (builtins.elemAt parts 1); + }}; + raw_version_position = sanitizePosition (builtins.unsafeGetAttrPos "version" pkg); - position = if pkg ? isRubyGem then + position = if pkg ? meta.position then + sanitizePosition (positionFromMeta pkg) + else if pkg ? isRubyGem then raw_version_position else if pkg ? isPhpExtension then raw_version_position - else + else sanitizePosition (builtins.unsafeGetAttrPos "src" pkg); in {{ name = pkg.name;