summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix135
1 files changed, 49 insertions, 86 deletions
diff --git a/flake.nix b/flake.nix
index 65ee21f..129b5d7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,93 +1,56 @@
{
description = "seth's website";
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
-
- flake-parts = {
- url = "github:hercules-ci/flake-parts";
- inputs.nixpkgs-lib.follows = "nixpkgs";
- };
-
- treefmt-nix = {
- url = "github:numtide/treefmt-nix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- pre-commit = {
- url = "github:cachix/pre-commit-hooks.nix";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- nixpkgs-stable.follows = "nixpkgs";
- flake-compat.follows = "";
- };
- };
- };
-
- outputs = inputs:
- inputs.flake-parts.lib.mkFlake {inherit inputs;} {
- imports = with inputs; [
- treefmt-nix.flakeModule
- pre-commit.flakeModule
- ];
-
- systems = [
- "x86_64-linux"
- "aarch64-linux"
- "x86_64-darwin"
- "aarch64-darwin"
- ];
-
- perSystem = {
- lib,
+ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+
+ outputs = {
+ self,
+ nixpkgs,
+ }: let
+ systems = [
+ "x86_64-linux"
+ "aarch64-linux"
+ "x86_64-darwin"
+ "aarch64-darwin"
+ ];
+
+ forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn nixpkgs.legacyPackages.${system});
+ in {
+ checks = forAllSystems (
+ {
pkgs,
- config,
- self',
+ system,
...
- }: let
- nodejs-slim = pkgs.nodejs-slim_20; # this should be the current lts
- corepack = pkgs.corepack_20;
-
- enableAll = lib.flip lib.genAttrs (lib.const {enable = true;});
- in {
- treefmt = {
- projectRootFile = ".git/config";
-
- programs = enableAll ["alejandra" "deadnix" "prettier"];
-
- settings.global = {
- excludes = [
- "./node_modules/*"
- "./dist/*"
- "./.astro/*"
- "flake.lock"
- "pnpm-lock.yaml"
- ];
- };
- };
-
- pre-commit.settings.hooks =
- (enableAll [
- "actionlint"
- "eclint"
- "eslint"
- "nil"
- "statix"
- "treefmt"
- ])
- // {
- treefmt.package = config.treefmt.build.wrapper;
- };
-
- devShells.default = pkgs.mkShellNoCC {
- shellHook = config.pre-commit.installationScript;
- packages = [
- self'.formatter
- nodejs-slim
- # use pnpm from package.json
- corepack
- ];
- };
+ }:
+ import ./nix/checks.nix (pkgs // {formatter = self.formatter.${system};})
+ );
+
+ devShells = forAllSystems ({
+ pkgs,
+ system,
+ ...
+ }: {
+ default = import ./shell.nix {
+ inherit system;
+ nixpkgs = pkgs;
+ formatter = self.formatter.${system};
+ };
+ });
+
+ formatter = forAllSystems (pkgs: pkgs.alejandra);
+
+ packages = forAllSystems ({
+ pkgs,
+ system,
+ ...
+ }: let
+ pkgs' = import ./. {
+ inherit system;
+ nixpkgs = pkgs;
};
- };
+ in
+ pkgs' // {default = pkgs'.website;});
+
+ overlays.default = final: prev: import ./overlay.nix final prev;
+ };
}