weechat: fix bad merge
Identified in 8887e1f697 (r239097413)
.
9504292b1e9948fb286b1b1cdbe83f66b367b64d accidentally reverted all the
changes that had been made to the weechat wrapper since
8887e1f697d9e13ad277ca7d7054bc42c2459548.
I removed the wrapper, then wrote it again, but this time taking the
code from the latest version of weechat before the bad merge.
This commit is contained in:
parent
d362815113
commit
6dc9347712
@ -1,4 +1,5 @@
|
||||
{ pythonPackages, perl, runCommand, lib, writeScriptBin, stdenv
|
||||
{ stdenv, lib, runCommand, writeScriptBin, buildEnv
|
||||
, pythonPackages, perl, perlPackages
|
||||
}:
|
||||
|
||||
weechat:
|
||||
@ -10,31 +11,37 @@ let
|
||||
|
||||
let
|
||||
perlInterpreter = perl;
|
||||
config = configure {
|
||||
availablePlugins = let
|
||||
simplePlugin = name: { pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so"; };
|
||||
in rec {
|
||||
python = {
|
||||
pluginFile = "${weechat.python}/lib/weechat/plugins/python.so";
|
||||
withPackages = pkgsFun: (python // {
|
||||
extraEnv = ''
|
||||
export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}"
|
||||
'';
|
||||
});
|
||||
};
|
||||
perl = (simplePlugin "perl") // {
|
||||
availablePlugins = let
|
||||
simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
|
||||
in rec {
|
||||
python = {
|
||||
pluginFile = "${weechat.python}/lib/weechat/plugins/python.so";
|
||||
withPackages = pkgsFun: (python // {
|
||||
extraEnv = ''
|
||||
export PATH="${perlInterpreter}/bin:$PATH"
|
||||
export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}"
|
||||
'';
|
||||
};
|
||||
tcl = simplePlugin "tcl";
|
||||
ruby = simplePlugin "ruby";
|
||||
guile = simplePlugin "guile";
|
||||
lua = simplePlugin "lua";
|
||||
});
|
||||
};
|
||||
};
|
||||
perl = (simplePlugin "perl") // {
|
||||
extraEnv = ''
|
||||
export PATH="${perlInterpreter}/bin:$PATH"
|
||||
'';
|
||||
withPackages = pkgsFun: (perl // {
|
||||
extraEnv = ''
|
||||
${perl.extraEnv}
|
||||
export PERL5LIB=${lib.makeFullPerlPath (pkgsFun perlPackages)}
|
||||
'';
|
||||
});
|
||||
};
|
||||
tcl = simplePlugin "tcl";
|
||||
ruby = simplePlugin "ruby";
|
||||
guile = simplePlugin "guile";
|
||||
lua = simplePlugin "lua";
|
||||
};
|
||||
|
||||
inherit (config) plugins;
|
||||
config = configure { inherit availablePlugins; };
|
||||
|
||||
plugins = config.plugins or (builtins.attrValues availablePlugins);
|
||||
|
||||
pluginsDir = runCommand "weechat-plugins" {} ''
|
||||
mkdir -p $out/plugins
|
||||
@ -43,14 +50,30 @@ let
|
||||
done
|
||||
'';
|
||||
|
||||
in (writeScriptBin "weechat" ''
|
||||
#!${stdenv.shell}
|
||||
export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
|
||||
${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
|
||||
exec ${weechat}/bin/weechat "$@"
|
||||
'') // {
|
||||
name = weechat.name;
|
||||
unwrapped = weechat;
|
||||
init = let
|
||||
init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or "");
|
||||
|
||||
mkScript = drv: lib.flip map drv.scripts (script: "/script load ${drv}/share/${script}");
|
||||
|
||||
scripts = builtins.concatStringsSep ";" (lib.foldl (scripts: drv: scripts ++ mkScript drv)
|
||||
[ ] (config.scripts or []));
|
||||
in "${scripts};${init}";
|
||||
|
||||
mkWeechat = bin: (writeScriptBin bin ''
|
||||
#!${stdenv.shell}
|
||||
export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
|
||||
${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
|
||||
exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init}
|
||||
'') // {
|
||||
inherit (weechat) name meta;
|
||||
unwrapped = weechat;
|
||||
};
|
||||
in buildEnv {
|
||||
name = "weechat-bin-env-${weechat.version}";
|
||||
paths = [
|
||||
(mkWeechat "weechat")
|
||||
(mkWeechat "weechat-headless")
|
||||
];
|
||||
meta = weechat.meta;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user