about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/pu/purescm/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/pu/purescm/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/pu/purescm/package.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/pu/purescm/package.nix b/nixpkgs/pkgs/by-name/pu/purescm/package.nix
new file mode 100644
index 000000000000..c03f1339d18a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pu/purescm/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildNpmPackage
+, fetchNpmDeps
+, testers
+}:
+
+let
+  inherit (lib) fileset;
+
+  packageLock = builtins.fromJSON (builtins.readFile ./package-lock.json);
+
+  pname = "purescm";
+  version = packageLock.packages."node_modules/${pname}".version;
+
+  package = buildNpmPackage {
+    inherit pname version;
+
+    src = ./.;
+    dontNpmBuild = true;
+
+    npmDeps = fetchNpmDeps {
+      src = ./.;
+      hash = "sha256-ljeFcLvIET77Q0OR6O5Ok1fGnaxaKaoywpcy2aHq/6o=";
+    };
+
+    installPhase = ''
+      mkdir -p $out/share/${pname}
+      cp -r node_modules/ $out/share/${pname}
+      ln -s $out/share/${pname}/node_modules/.bin $out/bin
+    '';
+
+    passthru.tests = {
+      version = testers.testVersion { inherit package; };
+    };
+
+    meta = {
+      description = "Chez Scheme back-end for PureScript";
+      homepage = "https://github.com/purescm/purescm";
+      license = lib.licenses.asl20;
+      maintainers = with lib.maintainers; [ toastal ];
+      mainProgram = "purescm";
+    };
+  };
+in
+package