2025-06-11 15:59:42 +05:30

89 lines
2.0 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
callPackage,
substitute,
runtimeShell,
coreutils,
gnused,
gnugrep,
jq,
util-linux,
nix,
lib,
nixosTests,
installShellFiles,
binlore,
nixos-rebuild,
}:
let
fallback = import ./../../../../nixos/modules/installer/tools/nix-fallback-paths.nix;
in
substitute {
name = "nixos-rebuild";
src = ./nixos-rebuild.sh;
dir = "bin";
isExecutable = true;
substitutions = [
"--subst-var-by"
"runtimeShell"
runtimeShell
"--subst-var-by"
"nix"
nix
"--subst-var-by"
"nix_x86_64_linux"
fallback.x86_64-linux
"--subst-var-by"
"nix_i686_linux"
fallback.i686-linux
"--subst-var-by"
"nix_aarch64_linux"
fallback.aarch64-linux
"--subst-var-by"
"path"
(lib.makeBinPath [
coreutils
gnused
gnugrep
jq
util-linux
])
];
nativeBuildInputs = [
installShellFiles
];
postInstall = ''
installManPage ${./nixos-rebuild.8}
installShellCompletion \
--bash ${./_nixos-rebuild}
'';
# run some a simple installer tests to make sure nixos-rebuild still works for them
passthru.tests = {
install-bootloader = nixosTests.nixos-rebuild-install-bootloader;
repl = callPackage ./test/repl.nix { };
simple-installer = nixosTests.installer.simple;
specialisations = nixosTests.nixos-rebuild-specialisations;
target-host = nixosTests.nixos-rebuild-target-host;
};
# nixos-rebuild cant execute its arguments
# (but it can run ssh with the with the options stored in $NIX_SSHOPTS,
# and ssh can execute its arguments...)
passthru.binlore.out = binlore.synthesize nixos-rebuild ''
execer cannot bin/nixos-rebuild
'';
meta = {
description = "Rebuild your NixOS configuration and switch to it, on local hosts and remote";
homepage = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/nixos-rebuild";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.Profpatsch ];
teams = [ lib.teams.nixos-rebuild ];
mainProgram = "nixos-rebuild";
};
}