flake.nix
{
description = "pijul, the sound distributed version control system";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
outputs =
{ self, nixpkgs, ... }:
let
# there is also nixpkgs.lib.systems.flakeExposed
allSystems = [
"x86_64-linux"
"aarch64-linux"
"i686-linux"
"x86_64-darwin"
"aarch64-darwin"
];
withPkgs =
pkgsCallback:
nixpkgs.lib.genAttrs allSystems (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [
(import ./nix/overlays/default.nix)
(import ./nix/overlays/devshells.nix)
];
};
in
pkgsCallback { inherit pkgs system; }
);
in
{
overlays = {
default = import ./nix/overlay.nix { };
devShells = import ./nix/devshells-overlay.nix { };
};
devShells = withPkgs (
{ pkgs, ... }:
{
default = pkgs.pijulGitDevShell;
}
);
formatter = withPkgs ({ pkgs, ... }: pkgs.nixfmt-rfc-style);
packages = withPkgs (
{ pkgs, ... }:
{
inherit (pkgs) pijul pijul-git;
default = self.packages.${pkgs.system}.pijul;
}
);
};
}