mirror of
https://github.com/nix-community/disko
synced 2024-11-10 06:14:14 +00:00
087ba202e8
If there is only one module that is getting exported, the convention is to use that "default" value as the name.
80 lines
2.6 KiB
Nix
80 lines
2.6 KiB
Nix
{
|
|
description = "Disko - declarative disk partitioning";
|
|
|
|
# FIXME: in future we don't want lock here to give precedence to a USB live-installer's registry,
|
|
# but garnix currently does not allow this.
|
|
#inputs.nixpkgs.url = "nixpkgs";
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
|
|
outputs = { self, nixpkgs, ... }:
|
|
let
|
|
supportedSystems = [
|
|
"x86_64-linux"
|
|
"i686-linux"
|
|
"aarch64-linux"
|
|
"riscv64-linux"
|
|
];
|
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
|
in
|
|
{
|
|
nixosModules.default = self.nixosModules.disko; # convention
|
|
nixosModules.disko = import ./module.nix;
|
|
lib = import ./. {
|
|
inherit (nixpkgs) lib;
|
|
};
|
|
packages = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
{
|
|
disko = pkgs.callPackage ./package.nix { };
|
|
disko-doc = pkgs.callPackage ./doc.nix { };
|
|
default = self.packages.${system}.disko;
|
|
# The way bcachefs support is maintained in nixpkgs is prone to breakage.
|
|
# That's why we need to maintain a fork here:
|
|
# https://github.com/NixOS/nixpkgs/issues/212086
|
|
linux-bcachefs = pkgs.callPackage ./linux-testing-bcachefs.nix { };
|
|
});
|
|
legacyPackages = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
{
|
|
linuxPackages_bcachefs = pkgs.linuxPackagesFor self.packages.${pkgs.system}.linux-bcachefs;
|
|
});
|
|
# TODO: disable bios-related tests on aarch64...
|
|
# Run checks: nix flake check -L
|
|
checks = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
nixosTests = import ./tests {
|
|
inherit pkgs;
|
|
makeTest = import (pkgs.path + "/nixos/tests/make-test-python.nix");
|
|
eval-config = import (pkgs.path + "/nixos/lib/eval-config.nix");
|
|
};
|
|
shellcheck = pkgs.runCommand "shellcheck" { nativeBuildInputs = [ pkgs.shellcheck ]; } ''
|
|
cd ${./.}
|
|
shellcheck disk-deactivate/disk-deactivate disko
|
|
touch $out
|
|
'';
|
|
in
|
|
nixosTests // { inherit shellcheck; });
|
|
formatter = forAllSystems (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
pkgs.writeShellApplication {
|
|
name = "normalise_nix";
|
|
runtimeInputs = with pkgs; [
|
|
nixpkgs-fmt
|
|
statix
|
|
];
|
|
text = ''
|
|
set -o xtrace
|
|
nixpkgs-fmt "$@"
|
|
statix fix "$@"
|
|
'';
|
|
}
|
|
);
|
|
};
|
|
}
|