nur-packages/flake.nix

58 lines
2.1 KiB
Nix
Raw Normal View History

2020-12-10 20:58:21 +11:00
{
2021-11-13 18:51:16 +11:00
description = "xeals's Nix repository";
2020-12-10 20:58:21 +11:00
2021-11-13 18:51:16 +11:00
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
2023-02-23 09:48:25 +11:00
inputs.flake-utils.url = "github:numtide/flake-utils";
2020-12-10 20:58:21 +11:00
2023-02-23 09:48:25 +11:00
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem
(system:
2021-11-13 18:51:16 +11:00
let
2023-02-23 09:48:25 +11:00
pkgs = import nixpkgs { inherit system; };
2021-11-13 18:51:16 +11:00
in
{
2023-09-21 12:27:35 +10:00
packages = import ./pkgs/top-level { localSystem = system; inherit pkgs; };
2023-02-23 09:48:25 +11:00
2024-01-04 15:01:00 +11:00
formatter = pkgs.writeShellScriptBin "nur-packages-fmt" ''
${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt .
${pkgs.deadnix}/bin/deadnix -e .
'';
2023-02-23 10:51:53 +11:00
checks = {
# Ensures that the NUR bot can evaluate and find all our packages.
# Normally we'd also run with `--option restrict-eval true`, but
# this is incompatible with flakes because reasons.
nur = pkgs.writeShellScriptBin "nur-check" ''
# Prefer nixpkgs channel (actual build), otherwise read from flake.lock (CI)
if ! nixpkgs=$(nix-instantiate --find-file nixpkgs 2>/dev/null); then
_rev=$(${pkgs.jq}/bin/jq -r .nodes.nixpkgs.locked.rev flake.lock)
nixpkgs="https://github.com/nixos/nixpkgs/archive/''${_rev}.tar.gz"
fi
nix-env -f . -qa \* --meta \
--allowed-uris https://static.rust-lang.org \
--option allow-import-from-derivation true \
--drv-path --show-trace \
-I nixpkgs="$nixpkgs" \
-I ./ \
--json | ${pkgs.jq}/bin/jq -r 'values | .[].name'
'';
2023-02-23 10:51:53 +11:00
};
devShells.ci = pkgs.mkShellNoCC {
buildInputs = [ pkgs.nix-build-uncached ];
};
2023-02-23 09:48:25 +11:00
})
// {
2024-01-04 15:16:49 +11:00
nixosModules = nixpkgs.lib.mapAttrs (_: path: import path) (import ./modules) // {
2023-02-23 09:48:25 +11:00
default = {
2024-01-04 15:16:49 +11:00
imports = nixpkgs.lib.attrValues self.nixosModules;
2023-02-23 09:48:25 +11:00
};
};
2021-11-13 18:51:16 +11:00
2023-02-23 09:48:25 +11:00
overlays = import ./overlays // {
pkgs = _: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; };
default = _: _: { xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs; };
};
2021-11-13 18:51:16 +11:00
};
2020-12-10 20:58:21 +11:00
}