uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
91
pkgs/applications/networking/irc/weechat/wrapper.nix
Normal file
91
pkgs/applications/networking/irc/weechat/wrapper.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ lib, runCommand, writeScriptBin, buildEnv
|
||||
, python3Packages, perlPackages, runtimeShell
|
||||
}:
|
||||
|
||||
weechat:
|
||||
|
||||
let
|
||||
wrapper = {
|
||||
installManPages ? true
|
||||
, configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; }
|
||||
}:
|
||||
|
||||
let
|
||||
perlInterpreter = perlPackages.perl;
|
||||
availablePlugins = let
|
||||
simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
|
||||
in rec {
|
||||
python = (simplePlugin "python") // {
|
||||
extraEnv = ''
|
||||
export PATH="${python3Packages.python}/bin:$PATH"
|
||||
'';
|
||||
withPackages = pkgsFun: (python // {
|
||||
extraEnv = ''
|
||||
export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}"
|
||||
'';
|
||||
});
|
||||
};
|
||||
perl = (simplePlugin "perl") // {
|
||||
extraEnv = ''
|
||||
export PATH="${perlInterpreter}/bin:$PATH"
|
||||
'';
|
||||
withPackages = pkgsFun: (perl // {
|
||||
extraEnv = ''
|
||||
${perl.extraEnv}
|
||||
export PERL5LIB=${perlPackages.makeFullPerlPath (pkgsFun perlPackages)}
|
||||
'';
|
||||
});
|
||||
};
|
||||
tcl = simplePlugin "tcl";
|
||||
ruby = simplePlugin "ruby";
|
||||
guile = simplePlugin "guile";
|
||||
lua = simplePlugin "lua";
|
||||
};
|
||||
|
||||
config = configure { inherit availablePlugins; };
|
||||
|
||||
plugins = config.plugins or (builtins.attrValues availablePlugins);
|
||||
|
||||
pluginsDir = runCommand "weechat-plugins" {} ''
|
||||
mkdir -p $out/plugins
|
||||
for plugin in ${lib.concatMapStringsSep " " (p: p.pluginFile) plugins} ; do
|
||||
ln -s $plugin $out/plugins
|
||||
done
|
||||
'';
|
||||
|
||||
init = let
|
||||
init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or "");
|
||||
|
||||
mkScript = drv: lib.forEach 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 ''
|
||||
#!${runtimeShell}
|
||||
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 man;
|
||||
unwrapped = weechat;
|
||||
outputs = [ "out" "man" ];
|
||||
};
|
||||
in buildEnv {
|
||||
name = "weechat-bin-env-${weechat.version}";
|
||||
extraOutputsToInstall = lib.optionals installManPages [ "man" ];
|
||||
paths = [
|
||||
(mkWeechat "weechat")
|
||||
(mkWeechat "weechat-headless")
|
||||
(runCommand "weechat-out-except-bin" { } ''
|
||||
mkdir $out
|
||||
ln -sf ${weechat}/include $out/include
|
||||
ln -sf ${weechat}/lib $out/lib
|
||||
ln -sf ${weechat}/share $out/share
|
||||
'')
|
||||
];
|
||||
meta = builtins.removeAttrs weechat.meta [ "outputsToInstall" ];
|
||||
};
|
||||
|
||||
in lib.makeOverridable wrapper
|
||||
Loading…
Add table
Add a link
Reference in a new issue