nixos-rebuild-ng: refactor classic Nix to simplify logic
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user