From 7ab1002485d48064820f2b0e1e37be91848a0630 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Wed, 11 Oct 2023 14:41:49 +0200 Subject: [PATCH] refactor(nix): switch to flake-parts Signed-off-by: Sefa Eyeoglu --- .gitignore | 1 + flake.lock | 48 ++++++++++++++++++++++++++++++++++++++------- flake.nix | 57 ++++++++++++++++++++++++++++++++---------------------- 3 files changed, 76 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 61b5747..ae15518 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ node_modules/ eslint_report.json .DS_Store +*.rdb diff --git a/flake.lock b/flake.lock index b2238dd..06957f9 100644 --- a/flake.lock +++ b/flake.lock @@ -16,16 +16,34 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -71,6 +89,24 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1696019113, + "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1685801374, @@ -90,9 +126,7 @@ "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils", "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" @@ -115,7 +149,7 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", + "flake-parts": "flake-parts", "nixpkgs": "nixpkgs", "pre-commit-hooks": "pre-commit-hooks" } diff --git a/flake.nix b/flake.nix index 165dd43..df941f9 100644 --- a/flake.nix +++ b/flake.nix @@ -3,39 +3,50 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + flake-parts.url = "github:hercules-ci/flake-parts"; pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.flake-utils.follows = "flake-utils"; }; }; outputs = { - self, - nixpkgs, - flake-utils, + flake-parts, pre-commit-hooks, ... - }: - flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}; - in { - checks = { - pre-commit-check = pre-commit-hooks.lib.${system}.run { - src = ./.; - hooks = { - alejandra.enable = true; - prettier = { - enable = true; - excludes = ["flake.lock" "pnpm-lock.yaml"]; - }; + } @ inputs: + flake-parts.lib.mkFlake {inherit inputs;} { + imports = [ + pre-commit-hooks.flakeModule + ]; + + perSystem = { + config, + lib, + pkgs, + ... + }: { + pre-commit.settings.hooks = { + alejandra.enable = true; + prettier = { + enable = true; + excludes = ["flake.lock" "pnpm-lock.yaml"]; }; }; + devShells.default = pkgs.mkShell { + shellHook = '' + ${config.pre-commit.installationScript} + ''; + packages = with pkgs; [nodePackages.pnpm]; + }; + formatter = pkgs.alejandra; }; - devShells.default = pkgs.mkShell { - inherit (self.checks.${system}.pre-commit-check) shellHook; - packages = with pkgs; [nodePackages.pnpm]; - }; - }); + + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + }; }