ibus-with-plugins: rewrite wrapper
This commit is contained in:
parent
10e3664c97
commit
f058f1c1d3
@ -1,24 +1,36 @@
|
||||
{ stdenv, buildEnv, ibus, makeWrapper, plugins, hicolor_icon_theme }:
|
||||
{ stdenv, runCommand, ibus, lndir, makeWrapper, plugins, hicolor_icon_theme }:
|
||||
|
||||
let
|
||||
drv = buildEnv {
|
||||
name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
|
||||
|
||||
paths = [ ibus hicolor_icon_theme ] ++ plugins;
|
||||
|
||||
postBuild = ''
|
||||
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
||||
if [ -L $out/bin ]; then
|
||||
rm $out/bin
|
||||
mkdir $out/bin
|
||||
for i in ${ibus}/bin/*; do
|
||||
ln -s $i $out/bin
|
||||
done
|
||||
fi
|
||||
wrapProgram $out/bin/ibus \
|
||||
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
|
||||
wrapProgram $out/bin/ibus-daemon \
|
||||
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
|
||||
'';
|
||||
env = {
|
||||
nativeBuildInputs = [ lndir makeWrapper ];
|
||||
propagatedUserEnvPackages = [ hicolor_icon_theme ];
|
||||
paths = [ ibus ] ++ plugins;
|
||||
};
|
||||
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
|
||||
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
|
||||
|
||||
for prog in ibus ibus-daemon ibus-setup; do
|
||||
wrapProgram "$out/bin/$prog" \
|
||||
--suffix XDG_DATA_DIRS : "${hicolor_icon_theme}/share" \
|
||||
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/" \
|
||||
--set IBUS_DATAROOTDIR "$out/share" \
|
||||
--set IBUS_LIBEXECDIR "$out/libexec" \
|
||||
--set IBUS_LOCALEDIR "$out/share/locale" \
|
||||
--set IBUS_PREFIX "$out" \
|
||||
--set IBUS_TABLE_BIN_PATH "$out/bin" \
|
||||
--set IBUS_TABLE_DATA_DIR "$out/share" \
|
||||
--set IBUS_TABLE_LIB_LOCATION "$out/libexec" \
|
||||
--set IBUS_TABLE_LOCATION "$out/share/ibus-table" \
|
||||
--set IBUS_TABLE_DEBUG_LEVEL 1
|
||||
done
|
||||
'';
|
||||
in
|
||||
runCommand name env command
|
||||
|
Loading…
Reference in New Issue
Block a user