about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/ni/nim_lk/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/ni/nim_lk/package.nix46
1 files changed, 17 insertions, 29 deletions
diff --git a/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix b/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix
index 833860b357fe..597a4d3c89df 100644
--- a/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nim_lk/package.nix
@@ -1,9 +1,16 @@
-{ lib, buildPackages, nim2Packages, fetchFromSourcehut, openssl }:
+{ lib
+, buildNimPackage
+, fetchFromSourcehut
+, nim
+, nix-prefetch
+, nix-prefetch-git
+, openssl
+, makeWrapper
+}:
 
-nim2Packages.buildNimPackage (finalAttrs: {
+buildNimPackage (finalAttrs: {
   pname = "nim_lk";
   version = "20231031";
-  nimBinOnly = true;
 
   src = fetchFromSourcehut {
     owner = "~ehmry";
@@ -13,8 +20,14 @@ nim2Packages.buildNimPackage (finalAttrs: {
   };
 
   buildInputs = [ openssl ];
+  nativeBuildInputs = [ makeWrapper ];
 
-  nimFlags = finalAttrs.passthru.nimFlagsFromLockFile ./lock.json;
+  lockFile = ./lock.json;
+
+  postFixup = ''
+    wrapProgram $out/bin/nim_lk \
+      --suffix PATH : ${lib.makeBinPath [ nim nix-prefetch nix-prefetch-git ]}
+  '';
 
   meta = finalAttrs.src.meta // {
     description = "Generate Nix specific lock files for Nim packages";
@@ -24,29 +37,4 @@ nim2Packages.buildNimPackage (finalAttrs: {
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ ehmry ];
   };
-
-  passthru.nimFlagsFromLockFile = let
-    fetchDependency = let
-      methods = {
-        fetchzip = { url, sha256, ... }:
-          buildPackages.fetchzip {
-            name = "source";
-            inherit url sha256;
-          };
-        git = { fetchSubmodules, leaveDotGit, rev, sha256, url, ... }:
-          buildPackages.fetchgit {
-            inherit fetchSubmodules leaveDotGit rev sha256 url;
-          };
-      };
-    in attrs@{ method, ... }: methods.${method} attrs // attrs;
-  in lockFile:
-  with builtins;
-  lib.pipe lockFile [
-    readFile
-    fromJSON
-    (getAttr "depends")
-    (map fetchDependency)
-    (map ({ outPath, srcDir, ... }: ''--path:"${outPath}/${srcDir}"''))
-  ];
-
 })