summaryrefslogtreecommitdiffstats
path: root/pkgs/development/lua-modules/nfd/default.nix
blob: 0336fdce6c64046120b346659b34fd3ee4f1a73a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
  fetchFromGitHub,
  buildLuarocksPackage,
  lua,
  pkg-config,
  lib,
  replaceVars,
  zenity,
}:

buildLuarocksPackage {
  pname = "nfd";
  version = "scm-1";

  src = fetchFromGitHub {
    owner = "Vexatos";
    repo = "nativefiledialog";
    rev = "bea4560b9269bdc142fef946ccd8682450748958";
    hash = "sha256-veCLHTmZU4puZW0NHeWFZa80XKc6w6gxVLjyBmTrejg=";
    fetchSubmodules = true;
  };

  # use zenity because default gtk impl just crashes
  patches = [
    (replaceVars ./zenity.patch {
      inherit zenity;
    })
  ];
  knownRockspec = "lua/nfd-scm-1.rockspec";

  luarocksConfig.variables.LUA_LIBDIR = "${lua}/lib";
  nativeBuildInputs = [ pkg-config ];

  postInstall = ''
    find $out -name nfd_zenity.so -execdir mv {} nfd.so \;
  '';

  doInstallCheck = true;
  nativeInstallCheckInputs = [ lua.pkgs.busted ];
  installCheckPhase = ''
    busted lua/spec/
  '';

  meta = {
    description = "Tiny, neat Lua library that invokes native file open and save dialogs";
    homepage = "https://github.com/Alloyed/nativefiledialog/tree/master/lua";
    license = lib.licenses.zlib;
    maintainers = [ lib.maintainers.scoder12 ];
    broken = lua.luaversion != "5.1";
  };
}