Merge pull request #48122 from zimbatm/pkg-nixos-rebuild
nixos-rebuild: init as package
This commit is contained in:
commit
10addad603
@ -98,6 +98,9 @@ rec {
|
|||||||
# The current nixpkgs version number as string.
|
# The current nixpkgs version number as string.
|
||||||
release = lib.strings.fileContents ../.version;
|
release = lib.strings.fileContents ../.version;
|
||||||
|
|
||||||
|
# Note: the first letter is bumped on every release. It's an animal.
|
||||||
|
codeName = lib.strings.fileContents ../.codeName;
|
||||||
|
|
||||||
# The current nixpkgs version suffix as string.
|
# The current nixpkgs version suffix as string.
|
||||||
versionSuffix =
|
versionSuffix =
|
||||||
let suffixFile = ../.version-suffix;
|
let suffixFile = ../.version-suffix;
|
||||||
|
@ -6,77 +6,35 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
makeProg = args: pkgs.substituteAll (args // {
|
nixos-build-vms = pkgs.nixos-build-vms;
|
||||||
dir = "bin";
|
nixos-enter = pkgs.nixos-enter;
|
||||||
isExecutable = true;
|
nixos-generate-config = pkgs.nixos-generate-config.override { inherit (config.system.nixos) release; };
|
||||||
});
|
nixos-install = pkgs.nixos-install.override { nix = config.nix.package; };
|
||||||
|
nixos-option = pkgs.nixos-option;
|
||||||
nixos-build-vms = makeProg {
|
nixos-rebuild = pkgs.nixos-rebuild.override { nix = config.nix.package; };
|
||||||
name = "nixos-build-vms";
|
nixos-version = pkgs.nixos-version.override { inherit (config.system.nixos) version codeName revision; };
|
||||||
src = ./nixos-build-vms/nixos-build-vms.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-install = makeProg {
|
|
||||||
name = "nixos-install";
|
|
||||||
src = ./nixos-install.sh;
|
|
||||||
nix = config.nix.package.out;
|
|
||||||
path = makeBinPath [ nixos-enter ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-rebuild =
|
|
||||||
let fallback = import ./nix-fallback-paths.nix; in
|
|
||||||
makeProg {
|
|
||||||
name = "nixos-rebuild";
|
|
||||||
src = ./nixos-rebuild.sh;
|
|
||||||
nix = config.nix.package.out;
|
|
||||||
nix_x86_64_linux = fallback.x86_64-linux;
|
|
||||||
nix_i686_linux = fallback.i686-linux;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-generate-config = makeProg {
|
|
||||||
name = "nixos-generate-config";
|
|
||||||
src = ./nixos-generate-config.pl;
|
|
||||||
path = [ pkgs.btrfs-progs ];
|
|
||||||
perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
|
|
||||||
inherit (config.system.nixos) release;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-option = makeProg {
|
|
||||||
name = "nixos-option";
|
|
||||||
src = ./nixos-option.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-version = makeProg {
|
|
||||||
name = "nixos-version";
|
|
||||||
src = ./nixos-version.sh;
|
|
||||||
inherit (config.system.nixos) version codeName revision;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixos-enter = makeProg {
|
|
||||||
name = "nixos-enter";
|
|
||||||
src = ./nixos-enter.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
environment.systemPackages = [
|
||||||
environment.systemPackages =
|
nixos-build-vms
|
||||||
[ nixos-build-vms
|
nixos-enter
|
||||||
nixos-install
|
nixos-generate-config
|
||||||
nixos-rebuild
|
nixos-install
|
||||||
nixos-generate-config
|
nixos-option
|
||||||
nixos-option
|
nixos-rebuild
|
||||||
nixos-version
|
nixos-version
|
||||||
nixos-enter
|
];
|
||||||
];
|
|
||||||
|
|
||||||
system.build = {
|
system.build = {
|
||||||
inherit nixos-install nixos-generate-config nixos-option nixos-rebuild nixos-enter;
|
inherit
|
||||||
|
nixos-enter
|
||||||
|
nixos-generate-config
|
||||||
|
nixos-install
|
||||||
|
nixos-option
|
||||||
|
nixos-rebuild
|
||||||
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,7 @@ in
|
|||||||
nixos.codeName = mkOption {
|
nixos.codeName = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
default = lib.trivial.codeName;
|
||||||
description = "The NixOS release code name (e.g. <literal>Emu</literal>).";
|
description = "The NixOS release code name (e.g. <literal>Emu</literal>).";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -79,9 +80,6 @@ in
|
|||||||
version = mkDefault (cfg.release + cfg.versionSuffix);
|
version = mkDefault (cfg.release + cfg.versionSuffix);
|
||||||
revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
|
revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
|
||||||
versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
|
versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
|
||||||
|
|
||||||
# Note: the first letter is bumped on every release. It's an animal.
|
|
||||||
codeName = "Koi";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Generate /etc/os-release. See
|
# Generate /etc/os-release. See
|
||||||
|
7
pkgs/tools/nixos/nixos-build-vms/default.nix
Normal file
7
pkgs/tools/nixos/nixos-build-vms/default.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ substituteAll }:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-build-vms";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-build-vms.sh;
|
||||||
|
}
|
@ -35,7 +35,7 @@ do
|
|||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
7
pkgs/tools/nixos/nixos-enter/default.nix
Normal file
7
pkgs/tools/nixos/nixos-enter/default.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ substituteAll }:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-enter";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-enter.sh;
|
||||||
|
}
|
16
pkgs/tools/nixos/nixos-generate-config/default.nix
Normal file
16
pkgs/tools/nixos/nixos-generate-config/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ substituteAll
|
||||||
|
, btrfs-progs
|
||||||
|
, perl
|
||||||
|
, perlPackages
|
||||||
|
, lib
|
||||||
|
, release ? lib.trivial.release
|
||||||
|
}:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-generate-config";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-generate-config.pl;
|
||||||
|
path = [ btrfs-progs ];
|
||||||
|
perl = "${perl}/bin/perl -I${perlPackages.FileSlurp}/lib/perl5/site_perl";
|
||||||
|
inherit release;
|
||||||
|
}
|
13
pkgs/tools/nixos/nixos-install/default.nix
Normal file
13
pkgs/tools/nixos/nixos-install/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ substituteAll
|
||||||
|
, lib
|
||||||
|
, nix
|
||||||
|
, nixos-enter
|
||||||
|
}:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-install";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-install.sh;
|
||||||
|
nix = nix.out;
|
||||||
|
path = lib.makeBinPath [ nixos-enter ];
|
||||||
|
}
|
7
pkgs/tools/nixos/nixos-option/default.nix
Normal file
7
pkgs/tools/nixos/nixos-option/default.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ substituteAll }:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-option";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-option.sh;
|
||||||
|
}
|
13
pkgs/tools/nixos/nixos-rebuild/default.nix
Normal file
13
pkgs/tools/nixos/nixos-rebuild/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ substituteAll, nix }:
|
||||||
|
let
|
||||||
|
fallback = import ./nix-fallback-paths.nix;
|
||||||
|
in
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-rebuild";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-rebuild.sh;
|
||||||
|
nix = nix.out;
|
||||||
|
nix_x86_64_linux = fallback.x86_64-linux;
|
||||||
|
nix_i686_linux = fallback.i686-linux;
|
||||||
|
}
|
13
pkgs/tools/nixos/nixos-version/default.nix
Normal file
13
pkgs/tools/nixos/nixos-version/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ substituteAll
|
||||||
|
, lib
|
||||||
|
, version ? lib.trivial.version
|
||||||
|
, codeName ? "unknown"
|
||||||
|
, revision ? lib.trivial.revisionWithDefault "master"
|
||||||
|
}:
|
||||||
|
substituteAll {
|
||||||
|
name = "nixos-version";
|
||||||
|
dir = "bin";
|
||||||
|
isExecutable = true;
|
||||||
|
src = ./nixos-version.sh;
|
||||||
|
inherit version codeName revision;
|
||||||
|
}
|
@ -21955,6 +21955,16 @@ with pkgs;
|
|||||||
nixStable
|
nixStable
|
||||||
nixUnstable;
|
nixUnstable;
|
||||||
|
|
||||||
|
# NixOS tools
|
||||||
|
nixos-build-vms = callPackage ../tools/nixos/nixos-build-vms { };
|
||||||
|
nixos-enter = callPackage ../tools/nixos/nixos-enter { };
|
||||||
|
nixos-generate-config = callPackage ../tools/nixos/nixos-generate-config { };
|
||||||
|
nixos-install = callPackage ../tools/nixos/nixos-install { };
|
||||||
|
nixos-option = callPackage ../tools/nixos/nixos-option { };
|
||||||
|
nixos-rebuild = callPackage ../tools/nixos/nixos-rebuild { };
|
||||||
|
nixos-version = callPackage ../tools/nixos/nixos-version { };
|
||||||
|
|
||||||
|
|
||||||
nixops = callPackage ../tools/package-management/nixops { };
|
nixops = callPackage ../tools/package-management/nixops { };
|
||||||
|
|
||||||
nixopsUnstable = lowPrio (callPackage ../tools/package-management/nixops/unstable.nix { });
|
nixopsUnstable = lowPrio (callPackage ../tools/package-management/nixops/unstable.nix { });
|
||||||
|
Loading…
x
Reference in New Issue
Block a user