stevenblack-blocklist: 3.15.5 -> 3.15.8 (#372042)
[NixPkgs.git] / pkgs / by-name / ca / cargo-tauri / hook.nix
bloba1fbdd3024f70867f40e06a3d31a34bc3c67b102
2   lib,
3   stdenv,
4   makeSetupHook,
5   cargo,
6   cargo-tauri,
7   rust,
8   # The subdirectory of `target/` from which to copy the build artifacts
9   targetSubdirectory ? stdenv.hostPlatform.rust.cargoShortTarget,
12 let
13   kernelName = stdenv.hostPlatform.parsed.kernel.name;
15 makeSetupHook {
16   name = "tauri-hook";
18   propagatedBuildInputs = [
19     cargo
20     cargo-tauri
21   ];
23   substitutions = {
24     inherit targetSubdirectory;
25     inherit (rust.envVars) rustHostPlatformSpec setEnv;
27     # A map of the bundles used for Tauri's different supported platforms
28     # https://github.com/tauri-apps/tauri/blob/23a912bb84d7c6088301e1ffc59adfa8a799beab/README.md#platforms
29     defaultTauriBundleType =
30       {
31         darwin = "app";
32         linux = "deb";
33       }
34       .${kernelName} or (throw "${kernelName} is not supported by cargo-tauri.hook");
36     # $targetDir is the path to the build artifacts (i.e., `./target/release`)
37     installScript =
38       {
39         darwin = ''
40           mkdir $out
41           mv "$targetDir"/bundle/macos $out/Applications
42         '';
44         linux = ''
45           mv "$targetDir"/bundle/deb/*/data/usr $out
46         '';
47       }
48       .${kernelName} or (throw "${kernelName} is not supported by cargo-tauri.hook");
49   };
51   meta = {
52     inherit (cargo-tauri.meta) maintainers broken;
53     # Platforms that Tauri supports bundles for
54     platforms = lib.platforms.darwin ++ lib.platforms.linux;
55   };
56 } ./hook.sh