From 8912150388383fd562b317c2ce9e7184d6fb05f4 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Fri, 21 Feb 2025 22:20:48 +0000 Subject: [PATCH] nixos-rebuild-ng: use Path.resolve() instead of readlink() readlink() only resolves the first symbolic link, while resolve() should resolve all of them. Fix #384035. --- pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py | 3 +-- pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py index 7f0183d7c381..a18578a481d6 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/models.py @@ -140,8 +140,7 @@ class Flake: default_path = Path("/etc/nixos/flake.nix") if default_path.exists(): # It can be a symlink to the actual flake. - if default_path.is_symlink(): - default_path = default_path.readlink() + default_path = default_path.resolve() return cls.parse(str(default_path.parent), get_hostname) else: return None diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py index cb318192fc2e..6d2017392fbf 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_models.py @@ -140,7 +140,7 @@ def test_flake_from_arg( return_value=True, ), patch( - get_qualified_name(m.Path.readlink, m), + get_qualified_name(m.Path.resolve, m), autospec=True, return_value=Path("/path/to/flake.nix"), ),