Unverified Commit 8f797994 authored by Maciej Krüger's avatar Maciej Krüger Committed by GitHub
Browse files

Merge pull request #254859 from dotlambda/haste-server-buildNpmPackage

haste-server: use buildNpmPackage
parents de4b2729 e21ce4a4
Loading
Loading
Loading
Loading
+12 −38
Original line number Diff line number Diff line
{ lib
, nixosTests
, stdenv
, buildNpmPackage
, fetchFromGitHub
, makeWrapper
, nodejs_18
, pkgs
}:

let
  nodejs = nodejs_18;
in
stdenv.mkDerivation rec {
buildNpmPackage rec {
  pname = "haste-server";
  version = "b52b394bad909ddf151073987671e843540d91d6";
  version = "unstable-2023-03-06";

  src = fetchFromGitHub {
    owner = "toptal";
    repo = "haste-server";
    rev = version;
    rev = "b52b394bad909ddf151073987671e843540d91d6";
    hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8=";
  };

  nativeBuildInputs = [
    nodejs
    makeWrapper
  ];
  npmDepsHash = "sha256-FEuqKbblAts0WTnGI9H9bRBOwPvkahltra1zl3sMPJs=";

  installPhase =
    let
      nodeDependencies = ((import ./node-composition.nix {
        inherit pkgs nodejs;
        inherit (stdenv.hostPlatform) system;
      }).nodeDependencies.override (old: {
        # access to path '/nix/store/...-source' is forbidden in restricted mode
        src = src;
        dontNpmInstall = true;
      }));
    in
    ''
      runHook postInstall
  dontNpmBuild = true;

      mkdir -p $out/share
      cp -ra . $out/share/haste-server
      ln -s ${nodeDependencies}/lib/node_modules $out/share/haste-server/node_modules
      makeWrapper ${nodejs}/bin/node $out/bin/haste-server \
        --add-flags $out/share/haste-server/server.js

      runHook postBuild
  postInstall = ''
    install -Dt "$out/share/haste-server" about.md
  '';

  passthru = {
    tests = {
      inherit (nixosTests) haste-server;
    };
    updateScript = ./update.sh;
  };

  meta = with lib; {
    description = "open source pastebin written in node.js";
    homepage = "https://www.toptal.com/developers/hastebin/about.md";
    description = "Open source pastebin written in Node.js";
    homepage = "https://github.com/toptal/haste-server";
    license = licenses.mit;
    mainProgram = "haste-server";
    maintainers = with maintainers; [ mkg20001 ];
  };
}
+0 −17
Original line number Diff line number Diff line
# This file has been generated by node2nix 1.11.1. Do not edit!

{pkgs ? import <nixpkgs> {
    inherit system;
  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_14"}:

let
  nodeEnv = import ./node-env.nix {
    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
    inherit pkgs nodejs;
    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
  };
in
import ./node-deps.nix {
  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
  inherit nodeEnv;
}
+0 −1561

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −686

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −28
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts nodePackages.node2nix gnused nix coreutils jq

set -euo pipefail

latestVersion="$(curl -s "https://api.github.com/repos/toptal/haste-server/commits?per_page=1" | jq -r ".[0].sha")"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; haste-server.version or (lib.getVersion haste-server)" | tr -d '"')

if [[ "$currentVersion" == "$latestVersion" ]]; then
  echo "haste-server is up-to-date: $currentVersion"
  exit 0
fi

update-source-version haste-server 0 sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
update-source-version haste-server "$latestVersion"

# use patched source
store_src="$(nix-build . -A haste-server.src --no-out-link)"

cd "$(dirname "${BASH_SOURCE[0]}")"

node2nix \
  --nodejs-14 \
  --development \
  --node-env ./node-env.nix \
  --output ./node-deps.nix \
  --input "$store_src/package.json" \
  --composition ./node-composition.nix