{
description = "Constellate CLI flake with NixOS + Home Manager modules";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, flake-utils, ... }:
# Expose packages, devshells, and modules for all default systems while also
# exporting overlay/module entry points for downstream flakes.
let
inherit (flake-utils.lib) eachDefaultSystem mkApp;
in
eachDefaultSystem
(system:
let
pkgs =
import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
};
constellatePkg = pkgs.constellate;
devShell = import ./nix/shell.nix { inherit pkgs; };
constellateApp = mkApp { drv = constellatePkg; };
in
{
packages = {
default = constellatePkg;
constellate = constellatePkg;
};
devShells = {
default = devShell;
constellate = devShell;
};
apps = {
default = constellateApp;
constellate = constellateApp;
};
})
// {
overlays.default = final: prev: {
constellate = prev.callPackage ./nix/package.nix {};
};
nixosModules.constellate = import ./nix/modules/nixos/constellate.nix;
homeManagerModules.constellate = import ./nix/modules/home-manager/constellate.nix;
};
}