about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/tools/inputmethods/ibus/wrapper.nix50
1 files changed, 29 insertions, 21 deletions
diff --git a/pkgs/tools/inputmethods/ibus/wrapper.nix b/pkgs/tools/inputmethods/ibus/wrapper.nix
index 93078325a0d20..d05fdfd5bd7d0 100644
--- a/pkgs/tools/inputmethods/ibus/wrapper.nix
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -1,26 +1,33 @@
-{ lib, runCommand, makeWrapper, lndir
-, dconf, hicolor-icon-theme, ibus, librsvg, plugins ? []
+{ lib
+, buildEnv
+, makeWrapper
+, dconf
+, hicolor-icon-theme
+, ibus
+, librsvg
+, plugins ? [ ]
 }:
 
-let
+buildEnv {
   name = "ibus-with-plugins-" + lib.getVersion ibus;
-  env = {
-    buildInputs = [ ibus ] ++ plugins;
-    nativeBuildInputs = [ lndir makeWrapper ];
-    propagatedUserEnvPackages = [ hicolor-icon-theme ];
-    paths = [ ibus ] ++ plugins;
-    inherit (ibus) meta;
-  };
-  command = ''
-    for dir in bin etc lib libexec share; do
-        mkdir -p "$out/$dir"
-        for pkg in $paths; do
-            if [ -d "$pkg/$dir" ]; then
-                lndir -silent "$pkg/$dir" "$out/$dir"
-            fi
-        done
-    done
 
+  paths = [ ibus ] ++ plugins;
+
+  pathsToLink = [
+    "/bin"
+    "/etc"
+    "/lib"
+    "/libexec"
+    "/share"
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [ ibus ] ++ plugins;
+
+  postBuild = ''
     for prog in ibus; do
         wrapProgram "$out/bin/$prog" \
           --set GDK_PIXBUF_MODULE_FILE ${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
@@ -60,5 +67,6 @@ let
           --add-flags "--cache=refresh"
     done
   '';
-in
-  runCommand name env command
+
+  inherit (ibus) meta;
+}