From db40e11a273f590934f107747f91d59262399e0e Mon Sep 17 00:00:00 2001 From: Ovyerus Date: Sun, 30 Jun 2024 22:14:53 +1000 Subject: [PATCH] refactor(flake): create derivation manually --- flake.lock | 32 ++++---------------------------- flake.nix | 19 +++---------------- package.nix | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 44 deletions(-) create mode 100644 package.nix diff --git a/flake.lock b/flake.lock index dd7e09d..2b2ba0d 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1719745533, - "narHash": "sha256-IzkWOBvcyrtL2rJ0VDm0+BojowCe+pMjEFeSSnGBMkY=", + "lastModified": 1719748801, + "narHash": "sha256-c+cWlre/d60egEfCpBkSUF+FfvkEkMGXj6xuQMOhZ0s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "641b2f29b62ef1e809e9d3d4cfd4cb419fac2275", + "rev": "7e00526b3e30803309e621d24d54ec7d7b902a36", "type": "github" }, "original": { @@ -33,34 +33,10 @@ "type": "github" } }, - "pnpm2nix": { - "inputs": { - "flake-utils": [ - "flake-utils" - ], - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1706694632, - "narHash": "sha256-ytyTwNPiUR8aq74QlxFI+Wv3MyvXz5POO1xZxQIoi0c=", - "owner": "nzbr", - "repo": "pnpm2nix-nzbr", - "rev": "0366b7344171accc2522525710e52a8abbf03579", - "type": "github" - }, - "original": { - "owner": "nzbr", - "repo": "pnpm2nix-nzbr", - "type": "github" - } - }, "root": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "pnpm2nix": "pnpm2nix" + "nixpkgs": "nixpkgs" } }, "systems": { diff --git a/flake.nix b/flake.nix index 121b7f8..5f3b472 100644 --- a/flake.nix +++ b/flake.nix @@ -2,39 +2,26 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; - pnpm2nix = { - url = "github:nzbr/pnpm2nix-nzbr"; - inputs = { - nixpkgs.follows = "nixpkgs"; - flake-utils.follows = "flake-utils"; - }; - }; }; outputs = { flake-utils, nixpkgs, - pnpm2nix, ... }: flake-utils.lib.eachDefaultSystem ( system: let - pkgs = import nixpkgs { - overlays = [pnpm2nix.outputs.overlays.default]; - inherit system; - }; + pkgs = nixpkgs.legacyPackages.${system}; in { devShells.default = with pkgs; mkShell { buildInputs = [ nodejs - nodejs.pkgs.pnpm + pnpm ]; }; - packages.default = pkgs.mkPnpmPackage { - src = ./.; - }; + packages.default = pkgs.callPackage ./package.nix {}; } ); } diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..df32d60 --- /dev/null +++ b/package.nix @@ -0,0 +1,38 @@ +{ + lib, + stdenv, + nodejs, + pnpm, +}: let + packageJSON = builtins.fromJSON (builtins.readFile ./package.json); +in + stdenv.mkDerivation (finalAttrs: { + pname = packageJSON.name; + version = packageJSON.version; + + src = lib.cleanSource ./.; + + pnpmDeps = pnpm.fetchDeps { + inherit (finalAttrs) pname version src; + hash = "sha256-yWX539W0b1R4YpIcDEVjCl3GzxI8kkpgT8GkCBrrY60="; + }; + + nativeBuildInputs = [nodejs pnpm.configHook]; + + buildPhase = '' + runHook preBuild + + pnpm build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r {dist/main.js,manifest.json} $out/ + + runHook postInstall + ''; + })