flake.nix
# SPDX-License-Identifier: BlueOak-1.0.0
# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>
{
description = "factor-nix-demo";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs =
{ self, nixpkgs, ... }@inputs:
let
# covering what what Factor *should* support (this may differ from
# what Nix actually support, but could/should)
supportedSystems = builtins.filter (
system:
builtins.any (archPrefix: nixpkgs.lib.hasPrefix archPrefix system) [
"x86_64-"
"i686-"
]
) nixpkgs.lib.systems.flakeExposed;
nixpkgsFor = nixpkgs.lib.genAttrs supportedSystems (
system:
import nixpkgs {
inherit system;
overlays = [
(import ./nix/overlay/default.nix)
(import ./nix/overlay/development.nix)
];
}
);
forAllSystems =
fn:
nixpkgs.lib.genAttrs supportedSystems (
system:
fn rec {
inherit system;
pkgs = nixpkgsFor.${system};
inherit (pkgs) lib;
}
);
in
{
overlays = {
default = import ./nix/overlay/default.nix;
dev-tools = import ./nix/overlay/development.nix;
};
packages = forAllSystems (
{ pkgs, ... }:
{
default = pkgs.fello;
}
);
devShells = forAllSystems (
{ pkgs, ... }:
{
default = pkgs.fello-dev-shell;
}
);
formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-3-space);
};
}