nixos-rebuild-ng: set process.run_wrapper check=True by default
This commit is contained in:
parent
3a080abf13
commit
3ef018f5e3
@ -74,7 +74,6 @@ class Flake:
|
||||
try:
|
||||
return run_wrapper(
|
||||
["uname", "-n"],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
remote=target_host,
|
||||
).stdout.strip()
|
||||
|
@ -36,7 +36,6 @@ def copy_closure(
|
||||
host.host,
|
||||
closure,
|
||||
],
|
||||
check=True,
|
||||
extra_env={"NIX_SSHOPTS": " ".join(host.opts)},
|
||||
)
|
||||
|
||||
@ -171,7 +170,6 @@ def get_generations(
|
||||
r = run_wrapper(
|
||||
["nix-env", "-p", profile.path, "--list-generations"],
|
||||
stdout=PIPE,
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=sudo,
|
||||
)
|
||||
@ -216,7 +214,6 @@ def list_generations(profile: Profile) -> list[GenerationJson]:
|
||||
configuration_revision = run_wrapper(
|
||||
[generation_path / "sw/bin/nixos-version", "--configuration-revision"],
|
||||
capture_output=True,
|
||||
check=True,
|
||||
).stdout.strip()
|
||||
except (CalledProcessError, IOError):
|
||||
configuration_revision = "Unknown"
|
||||
@ -260,7 +257,7 @@ def nixos_build(
|
||||
else:
|
||||
run_args = ["nix-build", "<nixpkgs/nixos>", "--attr", attr]
|
||||
run_args += dict_to_flags(nix_flags)
|
||||
r = run_wrapper(run_args, check=True, stdout=PIPE)
|
||||
r = run_wrapper(run_args, stdout=PIPE)
|
||||
return Path(r.stdout.strip())
|
||||
|
||||
|
||||
@ -281,7 +278,7 @@ def nixos_build_flake(
|
||||
f"{flake}.config.system.build.{attr}",
|
||||
*dict_to_flags(flake_flags),
|
||||
]
|
||||
r = run_wrapper(run_args, check=True, stdout=PIPE)
|
||||
r = run_wrapper(run_args, stdout=PIPE)
|
||||
return Path(r.stdout.strip())
|
||||
|
||||
|
||||
@ -289,7 +286,6 @@ def rollback(profile: Profile, target_host: Remote | None, sudo: bool) -> Path:
|
||||
"Rollback Nix profile, like one created by `nixos-rebuild switch`."
|
||||
run_wrapper(
|
||||
["nix-env", "--rollback", "-p", profile.path],
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=sudo,
|
||||
)
|
||||
@ -329,7 +325,6 @@ def set_profile(
|
||||
"Set a path as the current active Nix profile."
|
||||
run_wrapper(
|
||||
["nix-env", "-p", profile.path, "--set", path_to_config],
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=sudo,
|
||||
)
|
||||
@ -361,7 +356,6 @@ def switch_to_configuration(
|
||||
run_wrapper(
|
||||
[path_to_config / "bin/switch-to-configuration", str(action)],
|
||||
extra_env={"NIXOS_INSTALL_BOOTLOADER": "1" if install_bootloader else "0"},
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=sudo,
|
||||
)
|
||||
|
@ -8,13 +8,6 @@ from pathlib import Path
|
||||
from typing import Self, Sequence, TypedDict, Unpack
|
||||
|
||||
|
||||
# Not exhaustive, but we can always extend it later.
|
||||
class RunKwargs(TypedDict, total=False):
|
||||
capture_output: bool
|
||||
stderr: int | None
|
||||
stdout: int | None
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Remote:
|
||||
host: str
|
||||
@ -46,6 +39,13 @@ class Remote:
|
||||
return None
|
||||
|
||||
|
||||
# Not exhaustive, but we can always extend it later.
|
||||
class RunKwargs(TypedDict, total=False):
|
||||
capture_output: bool
|
||||
stderr: int | None
|
||||
stdout: int | None
|
||||
|
||||
|
||||
def cleanup_ssh(tmp_dir: Path) -> None:
|
||||
"Close SSH ControlMaster connection."
|
||||
for ctrl in tmp_dir.glob("ssh-*"):
|
||||
@ -55,7 +55,7 @@ def cleanup_ssh(tmp_dir: Path) -> None:
|
||||
def run_wrapper(
|
||||
args: Sequence[str | bytes | os.PathLike[str] | os.PathLike[bytes]],
|
||||
*,
|
||||
check: bool, # make it explicit so we always know if the code is handling errors
|
||||
check: bool = True,
|
||||
extra_env: dict[str, str] | None = None,
|
||||
remote: Remote | None = None,
|
||||
sudo: bool = False,
|
||||
|
@ -22,7 +22,6 @@ def test_copy_closure(mock_run: Any) -> None:
|
||||
n.copy_closure(closure, target_host)
|
||||
mock_run.assert_called_with(
|
||||
["nix-copy-closure", "--to", "user@host", closure],
|
||||
check=True,
|
||||
extra_env={"NIX_SSHOPTS": "--ssh opt"},
|
||||
)
|
||||
|
||||
@ -220,7 +219,6 @@ def test_nixos_build_flake(mock_run: Any) -> None:
|
||||
"--nix-flag",
|
||||
"foo",
|
||||
],
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
)
|
||||
|
||||
@ -234,28 +232,24 @@ def test_nixos_build(mock_run: Any, monkeypatch: Any) -> None:
|
||||
assert n.nixos_build("attr", None, None, nix_flag="foo") == Path("/path/to/file")
|
||||
mock_run.assert_called_with(
|
||||
["nix-build", "<nixpkgs/nixos>", "--attr", "attr", "--nix-flag", "foo"],
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
)
|
||||
|
||||
n.nixos_build("attr", "preAttr", "file")
|
||||
mock_run.assert_called_with(
|
||||
["nix-build", "file", "--attr", "preAttr.attr"],
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
)
|
||||
|
||||
n.nixos_build("attr", None, "file", no_out_link=True)
|
||||
mock_run.assert_called_with(
|
||||
["nix-build", "file", "--attr", "attr", "--no-out-link"],
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
)
|
||||
|
||||
n.nixos_build("attr", "preAttr", None, no_out_link=False, keep_going=True)
|
||||
mock_run.assert_called_with(
|
||||
["nix-build", "default.nix", "--attr", "preAttr.attr", "--keep-going"],
|
||||
check=True,
|
||||
stdout=PIPE,
|
||||
)
|
||||
|
||||
@ -270,7 +264,6 @@ def test_rollback(mock_run: Any, tmp_path: Path) -> None:
|
||||
assert n.rollback(profile, None, False) == profile.path
|
||||
mock_run.assert_called_with(
|
||||
["nix-env", "--rollback", "-p", path],
|
||||
check=True,
|
||||
remote=None,
|
||||
sudo=False,
|
||||
)
|
||||
@ -279,7 +272,6 @@ def test_rollback(mock_run: Any, tmp_path: Path) -> None:
|
||||
assert n.rollback(profile, target_host, True) == profile.path
|
||||
mock_run.assert_called_with(
|
||||
["nix-env", "--rollback", "-p", path],
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=True,
|
||||
)
|
||||
@ -312,7 +304,6 @@ def test_rollback_temporary_profile(tmp_path: Path) -> None:
|
||||
"--list-generations",
|
||||
],
|
||||
stdout=PIPE,
|
||||
check=True,
|
||||
remote=None,
|
||||
sudo=False,
|
||||
)
|
||||
@ -330,7 +321,6 @@ def test_rollback_temporary_profile(tmp_path: Path) -> None:
|
||||
"--list-generations",
|
||||
],
|
||||
stdout=PIPE,
|
||||
check=True,
|
||||
remote=target_host,
|
||||
sudo=True,
|
||||
)
|
||||
@ -353,7 +343,6 @@ def test_set_profile(mock_run: Any) -> None:
|
||||
|
||||
mock_run.assert_called_with(
|
||||
["nix-env", "-p", profile_path, "--set", config_path],
|
||||
check=True,
|
||||
remote=None,
|
||||
sudo=False,
|
||||
)
|
||||
@ -378,7 +367,6 @@ def test_switch_to_configuration(mock_run: Any, monkeypatch: Any) -> None:
|
||||
mock_run.assert_called_with(
|
||||
[profile_path / "bin/switch-to-configuration", "switch"],
|
||||
extra_env={"NIXOS_INSTALL_BOOTLOADER": "0"},
|
||||
check=True,
|
||||
sudo=False,
|
||||
remote=None,
|
||||
)
|
||||
@ -416,7 +404,6 @@ def test_switch_to_configuration(mock_run: Any, monkeypatch: Any) -> None:
|
||||
"test",
|
||||
],
|
||||
extra_env={"NIXOS_INSTALL_BOOTLOADER": "1"},
|
||||
check=True,
|
||||
sudo=True,
|
||||
remote=target_host,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user