1{ lib
2, mkYarnPackage
3, fetchFromGitHub
4, makeWrapper
5, nodejs
6, fetchYarnDeps
7,
8}:
9mkYarnPackage rec {
10 pname = "prettierd";
11 version = "0.25.1";
12
13 src = fetchFromGitHub {
14 owner = "fsouza";
15 repo = "prettierd";
16 rev = "v${version}";
17 hash = "sha256-aoRfZ9SJazz0ir1fyHypn3aYqK9DJOLLVPMuFcOm/20=";
18 };
19
20 offlineCache = fetchYarnDeps {
21 yarnLock = src + "/yarn.lock";
22 hash = "sha256-HsWsRIONRNY9akZ2LXlWcPhH6N5qCKnesaDX1gQp+NU=";
23 };
24
25 packageJSON = ./package.json;
26
27 nativeBuildInputs = [ makeWrapper ];
28
29 buildPhase = ''
30 runHook preBuild
31 export HOME=$(mktemp -d)
32 yarn --offline build
33 runHook postBuild
34 '';
35
36 # prettierd needs to be wrapped with nodejs so that it can be executed
37 postInstall = ''
38 wrapProgram "$out/bin/prettierd" --prefix PATH : "${nodejs}/bin"
39 '';
40
41 doDist = false;
42
43 meta = with lib; {
44 mainProgram = "prettierd";
45 description = "Prettier, as a daemon, for improved formatting speed";
46 homepage = "https://github.com/fsouza/prettierd";
47 license = licenses.isc;
48 changelog = "https://github.com/fsouza/prettierd/blob/${src.rev}/CHANGELOG.md";
49 platforms = with platforms; linux ++ darwin;
50 maintainers = with maintainers; [ NotAShelf n3oney ];
51 };
52}