nixos-rebuild-ng: refactor classic Nix to simplify logic

This commit is contained in:
Thiago Kenji Okada
2024-11-30 17:54:31 +00:00
parent 29e9b42022
commit c859df048f
4 changed files with 17 additions and 10 deletions
@@ -217,7 +217,7 @@ def execute(argv: list[str]) -> None:
else:
if build_host:
path_to_config = nix.nixos_remote_build(
"system",
"toplevel",
build_attr,
build_host,
instantiate_flags=common_flags,
@@ -226,7 +226,7 @@ def execute(argv: list[str]) -> None:
)
else:
path_to_config = nix.nixos_build(
"system",
"toplevel",
build_attr,
no_out_link=True,
**build_flags,
@@ -275,7 +275,7 @@ def execute(argv: list[str]) -> None:
)
else:
path_to_config = nix.nixos_build(
"system",
"toplevel",
build_attr,
dry_run=dry_run,
**build_flags,
@@ -261,7 +261,7 @@ def nixos_build(
"nix-build",
build_attr.path,
"--attr",
f"{'.'.join(x for x in [build_attr.attr, attr] if x)}",
f"{build_attr.attr + '.' if build_attr.attr else ''}config.system.build.{attr}",
*dict_to_flags(build_flags),
]
r = run_wrapper(run_args, stdout=PIPE)
@@ -303,7 +303,7 @@ def nixos_remote_build(
"--raw",
build_attr.path,
"--attr",
f"{'.'.join(x for x in [build_attr.attr, attr] if x)}",
f"{build_attr.attr + '.' if build_attr.attr else ''}config.system.build.{attr}",
*dict_to_flags(instantiate_flags or {}),
],
stdout=PIPE,
@@ -122,7 +122,7 @@ def test_execute_nix_boot(mock_run: Any, tmp_path: Path) -> None:
"nix-build",
"<nixpkgs/nixos>",
"--attr",
"system",
"config.system.build.toplevel",
"--no-out-link",
"-vvv",
],
@@ -251,7 +251,14 @@ def test_nixos_build(mock_run: Any, monkeypatch: Any) -> None:
"attr", m.BuildAttr("<nixpkgs/nixos>", None), nix_flag="foo"
) == Path("/path/to/file")
mock_run.assert_called_with(
["nix-build", "<nixpkgs/nixos>", "--attr", "attr", "--nix-flag", "foo"],
[
"nix-build",
"<nixpkgs/nixos>",
"--attr",
"config.system.build.attr",
"--nix-flag",
"foo",
],
stdout=PIPE,
)
@@ -259,7 +266,7 @@ def test_nixos_build(mock_run: Any, monkeypatch: Any) -> None:
"/path/to/file"
)
mock_run.assert_called_with(
["nix-build", Path("file"), "--attr", "preAttr.attr"],
["nix-build", Path("file"), "--attr", "preAttr.config.system.build.attr"],
stdout=PIPE,
)
@@ -332,7 +339,7 @@ def test_nixos_remote_build(mock_run: Any, monkeypatch: Any) -> None:
build_host = m.Remote("user@host", ["--ssh", "opts"], None)
assert n.nixos_remote_build(
"attr",
m.BuildAttr("<nixpkgs/nixos>", None),
m.BuildAttr("<nixpkgs/nixos>", "preAttr"),
build_host,
build_flags={"build": True},
instantiate_flags={"inst": True},
@@ -346,7 +353,7 @@ def test_nixos_remote_build(mock_run: Any, monkeypatch: Any) -> None:
"--raw",
"<nixpkgs/nixos>",
"--attr",
"attr",
"preAttr.config.system.build.attr",
"--inst",
],
stdout=PIPE,