Merge pull request #51571 from alyssais/weechat-merge

weechat: fix bad merge
This commit is contained in:
Maximilian Bosch 2018-12-06 01:40:24 +01:00 committed by GitHub
commit 42356feed0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,5 @@
{ pythonPackages, perl, runCommand, lib, writeScriptBin, stdenv { stdenv, lib, runCommand, writeScriptBin, buildEnv
, pythonPackages, perl, perlPackages
}: }:
weechat: weechat:
@ -10,9 +11,8 @@ let
let let
perlInterpreter = perl; perlInterpreter = perl;
config = configure {
availablePlugins = let availablePlugins = let
simplePlugin = name: { pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so"; }; simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
in rec { in rec {
python = { python = {
pluginFile = "${weechat.python}/lib/weechat/plugins/python.so"; pluginFile = "${weechat.python}/lib/weechat/plugins/python.so";
@ -26,15 +26,22 @@ let
extraEnv = '' extraEnv = ''
export PATH="${perlInterpreter}/bin:$PATH" export PATH="${perlInterpreter}/bin:$PATH"
''; '';
withPackages = pkgsFun: (perl // {
extraEnv = ''
${perl.extraEnv}
export PERL5LIB=${lib.makeFullPerlPath (pkgsFun perlPackages)}
'';
});
}; };
tcl = simplePlugin "tcl"; tcl = simplePlugin "tcl";
ruby = simplePlugin "ruby"; ruby = simplePlugin "ruby";
guile = simplePlugin "guile"; guile = simplePlugin "guile";
lua = simplePlugin "lua"; lua = simplePlugin "lua";
}; };
};
inherit (config) plugins; config = configure { inherit availablePlugins; };
plugins = config.plugins or (builtins.attrValues availablePlugins);
pluginsDir = runCommand "weechat-plugins" {} '' pluginsDir = runCommand "weechat-plugins" {} ''
mkdir -p $out/plugins mkdir -p $out/plugins
@ -43,14 +50,30 @@ let
done done
''; '';
in (writeScriptBin "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} #!${stdenv.shell}
export WEECHAT_EXTRA_LIBDIR=${pluginsDir} export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins} ${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
exec ${weechat}/bin/weechat "$@" exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init}
'') // { '') // {
name = weechat.name; inherit (weechat) name meta;
unwrapped = weechat; unwrapped = weechat;
};
in buildEnv {
name = "weechat-bin-env-${weechat.version}";
paths = [
(mkWeechat "weechat")
(mkWeechat "weechat-headless")
];
meta = weechat.meta; meta = weechat.meta;
}; };