forked from mirrors/nixpkgs
40 lines
1,007 B
Nix
40 lines
1,007 B
Nix
|
{ runCommandNoCC, lib, makeWrapper, wayfirePlugins }:
|
||
|
|
||
|
let
|
||
|
inherit (lib) escapeShellArg makeBinPath;
|
||
|
|
||
|
xmlPath = plugin: "${plugin}/share/wayfire/metadata/wf-shell";
|
||
|
|
||
|
makePluginPath = lib.makeLibraryPath;
|
||
|
makePluginXMLPath = lib.concatMapStringsSep ":" xmlPath;
|
||
|
in
|
||
|
|
||
|
application:
|
||
|
|
||
|
choosePlugins:
|
||
|
|
||
|
let
|
||
|
plugins = choosePlugins wayfirePlugins;
|
||
|
in
|
||
|
|
||
|
runCommandNoCC "${application.name}-wrapped" {
|
||
|
nativeBuildInputs = [ makeWrapper ];
|
||
|
|
||
|
passthru = application.passthru // {
|
||
|
unwrapped = application;
|
||
|
};
|
||
|
|
||
|
inherit (application) meta;
|
||
|
} ''
|
||
|
mkdir -p $out/bin
|
||
|
for bin in ${application}/bin/*
|
||
|
do
|
||
|
makeWrapper "$bin" $out/bin/''${bin##*/} \
|
||
|
--suffix PATH : ${escapeShellArg (makeBinPath plugins)} \
|
||
|
--suffix WAYFIRE_PLUGIN_PATH : ${escapeShellArg (makePluginPath plugins)} \
|
||
|
--suffix WAYFIRE_PLUGIN_XML_PATH : ${escapeShellArg (makePluginXMLPath plugins)}
|
||
|
done
|
||
|
find ${application} -mindepth 1 -maxdepth 1 -not -name bin \
|
||
|
-exec ln -s '{}' $out ';'
|
||
|
''
|