about summary refs log tree commit diff
path: root/pkgs/applications/video/obs-studio/wrapper.nix
blob: 80880d9318d976879f860e4d2340f7dfbd4afefd (plain) (blame)
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
{ lib, obs-studio, symlinkJoin, makeWrapper }:

{ plugins ? [] }:

symlinkJoin {
  name = "wrapped-${obs-studio.name}";

  nativeBuildInputs = [ makeWrapper ];
  paths = [ obs-studio ] ++ plugins;

  postBuild = with lib;
    let
      # Some plugins needs extra environment, see obs-gstreamer for an example.
      pluginArguments =
        lists.concatMap (plugin: plugin.obsWrapperArguments or []) plugins;

      wrapCommand = [
          "wrapProgram"
          "$out/bin/obs"
          ''--set OBS_PLUGINS_PATH "$out/lib/obs-plugins"''
          ''--set OBS_PLUGINS_DATA_PATH "$out/share/obs/obs-plugins"''
        ] ++ pluginArguments;
    in concatStringsSep " " wrapCommand;

  inherit (obs-studio) meta;
  passthru = obs-studio.passthru // {
    passthru.unwrapped = obs-studio;
  };
}