easytier: 2.1.1 -> 2.1.2 (#376259)
[NixPkgs.git] / pkgs / applications / video / obs-studio / wrapper.nix
blobc093d64cf6c34d3ff46b25cd93d5617b0966edf0
2   lib,
3   obs-studio,
4   symlinkJoin,
5   makeWrapper,
6 }:
9   plugins ? [ ],
12 symlinkJoin {
13   name = "wrapped-${obs-studio.name}";
15   nativeBuildInputs = [ makeWrapper ];
16   paths = [ obs-studio ] ++ plugins;
18   postBuild =
19     let
20       # Some plugins needs extra environment, see obs-gstreamer for an example.
21       pluginArguments = lib.lists.concatMap (plugin: plugin.obsWrapperArguments or [ ]) plugins;
23       pluginsJoined = symlinkJoin {
24         name = "obs-studio-plugins";
25         paths = plugins;
26       };
28       wrapCommandLine = [
29         "wrapProgram"
30         "$out/bin/obs"
31         ''--set OBS_PLUGINS_PATH "${pluginsJoined}/lib/obs-plugins"''
32         ''--set OBS_PLUGINS_DATA_PATH "${pluginsJoined}/share/obs/obs-plugins"''
33       ] ++ lib.lists.unique pluginArguments;
34     in
35     ''
36       ${lib.concatStringsSep " " wrapCommandLine}
38       # Remove unused obs-plugins dir to not cause confusion
39       rm -r $out/share/obs/obs-plugins
40       # Leave some breadcrumbs
41       echo 'Plugins are at ${pluginsJoined}/share/obs/obs-plugins' > $out/share/obs/obs-plugins-README
42     '';
44   inherit (obs-studio) meta;
45   passthru = obs-studio.passthru // {
46     passthru.unwrapped = obs-studio;
47   };