Loading pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ def get_parser() -> tuple[argparse.ArgumentParser, dict[str, argparse.ArgumentPa "--diff", action="store_true", help="prints out the diff between the current system " "and the newly built one using nix store diff-closures" "and the newly built one using nix store diff-closures", ) main_parser.add_argument("action", choices=Action.values(), nargs="?") Loading pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py +11 −8 Original line number Diff line number Diff line import sys import json import logging import os import sys import textwrap import uuid from concurrent.futures import ThreadPoolExecutor Loading Loading @@ -314,6 +314,7 @@ def get_build_image_name_flake( r = run_wrapper( [ "nix", *FLAKE_FLAGS, "eval", "--json", flake.to_attr( Loading Loading @@ -365,6 +366,7 @@ def get_build_image_variants_flake( r = run_wrapper( [ "nix", *FLAKE_FLAGS, "eval", "--json", flake.to_attr("config.system.build.images"), Loading Loading @@ -538,12 +540,13 @@ def list_generations(profile: Profile) -> list[GenerationJson]: reverse=True, ) def diff_closures(current_config: Path, new_config: Path, target_host: Remote | None = None): print( f"<<< {current_config}\n" f">>> {new_config}", file=sys.stderr ) def diff_closures( current_config: Path, new_config: Path, target_host: Remote | None = None, ) -> None: print(f"<<< {current_config}\n>>> {new_config}", file=sys.stderr) run_wrapper( [ "nix", Loading @@ -554,7 +557,7 @@ def diff_closures(current_config: Path, new_config: Path, target_host: Remote | new_config, ], remote=target_host, stdout=sys.stderr stdout=sys.stderr, ) Loading pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/process.py +3 −3 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import subprocess from collections.abc import Sequence from dataclasses import dataclass from ipaddress import AddressValueError, IPv6Address from typing import Final, Self, TypedDict, Unpack from typing import Final, Self, TextIO, TypedDict, Unpack from . import tmpdir Loading Loading @@ -85,8 +85,8 @@ class Remote: # Not exhaustive, but we can always extend it later. class RunKwargs(TypedDict, total=False): capture_output: bool stderr: int | None stdout: int | None stderr: int | TextIO | None stdout: int | TextIO | None def cleanup_ssh() -> None: Loading pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py +8 −2 Original line number Diff line number Diff line Loading @@ -324,9 +324,15 @@ def build_and_activate_system( current_config = Path("/run/current-system") if args.diff: if current_config.exists(): nix.diff_closures(current_config=current_config.readlink(), new_config=path_to_config, target_host=target_host) nix.diff_closures( current_config=current_config.readlink(), new_config=path_to_config, target_host=target_host, ) else: logger.warning(f"missing '{str(current_config)}', skipping configuration diff...") logger.warning( f"missing '{current_config!s}', skipping configuration diff..." ) _activate_system( path_to_config=path_to_config, Loading pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_main.py +4 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None: call( [ "nix", "--extra-experimental-features", "nix-command flakes", "eval", "--json", '/path/to/config#nixosConfigurations."hostname".config.system.build.images', Loading @@ -412,6 +414,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None: call( [ "nix", "--extra-experimental-features", "nix-command flakes", "eval", "--json", '/path/to/config#nixosConfigurations."hostname".config.system.build.images.azure.passthru.filePath', Loading Loading
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ def get_parser() -> tuple[argparse.ArgumentParser, dict[str, argparse.ArgumentPa "--diff", action="store_true", help="prints out the diff between the current system " "and the newly built one using nix store diff-closures" "and the newly built one using nix store diff-closures", ) main_parser.add_argument("action", choices=Action.values(), nargs="?") Loading
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/nix.py +11 −8 Original line number Diff line number Diff line import sys import json import logging import os import sys import textwrap import uuid from concurrent.futures import ThreadPoolExecutor Loading Loading @@ -314,6 +314,7 @@ def get_build_image_name_flake( r = run_wrapper( [ "nix", *FLAKE_FLAGS, "eval", "--json", flake.to_attr( Loading Loading @@ -365,6 +366,7 @@ def get_build_image_variants_flake( r = run_wrapper( [ "nix", *FLAKE_FLAGS, "eval", "--json", flake.to_attr("config.system.build.images"), Loading Loading @@ -538,12 +540,13 @@ def list_generations(profile: Profile) -> list[GenerationJson]: reverse=True, ) def diff_closures(current_config: Path, new_config: Path, target_host: Remote | None = None): print( f"<<< {current_config}\n" f">>> {new_config}", file=sys.stderr ) def diff_closures( current_config: Path, new_config: Path, target_host: Remote | None = None, ) -> None: print(f"<<< {current_config}\n>>> {new_config}", file=sys.stderr) run_wrapper( [ "nix", Loading @@ -554,7 +557,7 @@ def diff_closures(current_config: Path, new_config: Path, target_host: Remote | new_config, ], remote=target_host, stdout=sys.stderr stdout=sys.stderr, ) Loading
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/process.py +3 −3 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import subprocess from collections.abc import Sequence from dataclasses import dataclass from ipaddress import AddressValueError, IPv6Address from typing import Final, Self, TypedDict, Unpack from typing import Final, Self, TextIO, TypedDict, Unpack from . import tmpdir Loading Loading @@ -85,8 +85,8 @@ class Remote: # Not exhaustive, but we can always extend it later. class RunKwargs(TypedDict, total=False): capture_output: bool stderr: int | None stdout: int | None stderr: int | TextIO | None stdout: int | TextIO | None def cleanup_ssh() -> None: Loading
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py +8 −2 Original line number Diff line number Diff line Loading @@ -324,9 +324,15 @@ def build_and_activate_system( current_config = Path("/run/current-system") if args.diff: if current_config.exists(): nix.diff_closures(current_config=current_config.readlink(), new_config=path_to_config, target_host=target_host) nix.diff_closures( current_config=current_config.readlink(), new_config=path_to_config, target_host=target_host, ) else: logger.warning(f"missing '{str(current_config)}', skipping configuration diff...") logger.warning( f"missing '{current_config!s}', skipping configuration diff..." ) _activate_system( path_to_config=path_to_config, Loading
pkgs/by-name/ni/nixos-rebuild-ng/src/tests/test_main.py +4 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None: call( [ "nix", "--extra-experimental-features", "nix-command flakes", "eval", "--json", '/path/to/config#nixosConfigurations."hostname".config.system.build.images', Loading @@ -412,6 +414,8 @@ def test_execute_nix_build_image_flake(mock_run: Mock, tmp_path: Path) -> None: call( [ "nix", "--extra-experimental-features", "nix-command flakes", "eval", "--json", '/path/to/config#nixosConfigurations."hostname".config.system.build.images.azure.passthru.filePath', Loading