1{
2 stdenv,
3 lib,
4 bundlerEnv,
5 makeWrapper,
6 bundlerUpdateScript,
7}:
8let
9 rubyEnv = bundlerEnv {
10 name = "jsduck";
11 gemfile = ./Gemfile;
12 lockfile = ./Gemfile.lock;
13 gemset = ./gemset.nix;
14 };
15in
16stdenv.mkDerivation {
17 pname = "jsduck";
18 version = (import ./gemset.nix).jsduck.version;
19
20 dontUnpack = true;
21
22 nativeBuildInputs = [ makeWrapper ];
23 buildInputs = [ rubyEnv ];
24
25 installPhase = ''
26 mkdir -p $out/bin
27 makeWrapper ${rubyEnv}/bin/jsduck $out/bin/jsduck
28 '';
29
30 passthru.updateScript = bundlerUpdateScript "jsduck";
31
32 meta = with lib; {
33 description = "Simple JavaScript Duckumentation generator";
34 mainProgram = "jsduck";
35 homepage = "https://github.com/senchalabs/jsduck";
36 license = with licenses; gpl3;
37 maintainers = with maintainers; [
38 periklis
39 nicknovitski
40 ];
41 platforms = platforms.unix;
42 # rdiscount fails to compile with:
43 # mktags.c:44:1: error: return type defaults to ‘int’ [-Wimplicit-int]
44 broken = true;
45 };
46}