diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix new file mode 100644 index 000000000000..ec529519159b --- /dev/null +++ b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix @@ -0,0 +1,27 @@ +{ stdenv, lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, plugins ? null}: + +let +allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation" && !pkg.meta.broken or false) (lib.attrValues gimpPlugins); +selectedPlugins = if plugins == null then allPlugins else plugins; +extraArgs = map (x: x.wrapArgs or "") selectedPlugins; +versionBranch = stdenv.lib.versions.majorMinor gimp.version; + +in symlinkJoin { + name = "gimp-with-plugins-${gimp.version}"; + + paths = [ gimp ] ++ selectedPlugins; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + for each in gimp-${versionBranch} gimp-console-${versionBranch}; do + wrapProgram $out/bin/$each \ + --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \ + ${toString extraArgs} + done + set +x + for each in gimp gimp-console; do + ln -sf "$each-${versionBranch}" $out/bin/$each + done + ''; +} |