小编web*_*vis的帖子

Nix Pill 14:如何使 callPackage 可重写?

我无法理解Nix Pill 14。作者提供了makeOverridable,然后挑战用户将其集成callPackagemakeOverridabledefault.nix提供如下,其中makeOverridable位于 文件 中lib.nixcallPackage位于 文件 中default.nix

# file: lib.nix

rec {
  makeOverridable = f: origArgs:
    let
      origRes = f origArgs;
    in
      origRes // { override = newArgs: makeOverridable f (origArgs // newArgs); };
}
Run Code Online (Sandbox Code Playgroud)
# file: default.nix

let
  nixpkgs = import <nixpkgs> {};
  allPkgs = nixpkgs // pkgs;
  callPackage = path: overrides:
    let f = import path;
    in f ((builtins.intersectAttrs (builtins.functionArgs …
Run Code Online (Sandbox Code Playgroud)

functional-programming nixos nix

7
推荐指数
1
解决办法
1155
查看次数

标签 统计

functional-programming ×1

nix ×1

nixos ×1