Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 49 lines 1.2 kB view raw
1{ 2 lib, 3 obs-studio, 4 symlinkJoin, 5 makeWrapper, 6}: 7 8{ 9 plugins ? [ ], 10}: 11 12symlinkJoin { 13 name = "wrapped-${obs-studio.name}"; 14 15 nativeBuildInputs = [ makeWrapper ]; 16 paths = [ obs-studio ] ++ plugins; 17 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; 22 23 pluginsJoined = symlinkJoin { 24 name = "obs-studio-plugins"; 25 paths = plugins; 26 }; 27 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 ] 34 ++ lib.lists.unique pluginArguments; 35 in 36 '' 37 ${lib.concatStringsSep " " wrapCommandLine} 38 39 # Remove unused obs-plugins dir to not cause confusion 40 rm -r $out/share/obs/obs-plugins 41 # Leave some breadcrumbs 42 echo 'Plugins are at ${pluginsJoined}/share/obs/obs-plugins' > $out/share/obs/obs-plugins-README 43 ''; 44 45 inherit (obs-studio) meta; 46 passthru = obs-studio.passthru // { 47 passthru.unwrapped = obs-studio; 48 }; 49}