Categories
Fetchers1Fetches function names from pkgs, excluding derivations and pkgs.lib.
Contributed by @witttccchhher
let
pkgs = import <nixpkgs> { };
tryEval =
expr:
let
result = builtins.tryEval expr;
in
if result.success then result.value else null;
safeGet = name: tryEval (builtins.getAttr name pkgs);
isFunction = x: builtins.isFunction x;
isTopLevelFunction = name: name != "lib" && isFunction (safeGet name);
functionNames = builtins.filter isTopLevelFunction (builtins.attrNames pkgs);
in
builtins.trace (builtins.concatStringsSep "\n" functionNames) { }
$ nix eval -f <filename>.nix
trace:
...