biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / video / obs-studio / wrapper.nix
blob62bc80d26df3bc7afa6d8c928b63e98c03bad710
1 { lib, obs-studio, symlinkJoin, makeWrapper }:
3 { plugins ? [] }:
5 symlinkJoin {
6   name = "wrapped-${obs-studio.name}";
8   nativeBuildInputs = [ makeWrapper ];
9   paths = [ obs-studio ] ++ plugins;
11   postBuild = with lib;
12     let
13       # Some plugins needs extra environment, see obs-gstreamer for an example.
14       pluginArguments =
15         lists.concatMap (plugin: plugin.obsWrapperArguments or []) plugins;
17       pluginsJoined = symlinkJoin {
18         name = "obs-studio-plugins";
19         paths = plugins;
20       };
22       wrapCommandLine = [
23           "wrapProgram"
24           "$out/bin/obs"
25           ''--set OBS_PLUGINS_PATH "${pluginsJoined}/lib/obs-plugins"''
26           ''--set OBS_PLUGINS_DATA_PATH "${pluginsJoined}/share/obs/obs-plugins"''
27         ] ++ lists.unique pluginArguments;
28     in ''
29     ${concatStringsSep " " wrapCommandLine}
31     # Remove unused obs-plugins dir to not cause confusion
32     rm -r $out/share/obs/obs-plugins
33     # Leave some breadcrumbs
34     echo 'Plugins are at ${pluginsJoined}/share/obs/obs-plugins' > $out/share/obs/obs-plugins-README
35   '';
37   inherit (obs-studio) meta;
38   passthru = obs-studio.passthru // {
39     passthru.unwrapped = obs-studio;
40   };