【发布时间】:2023-02-04 14:24:02
【问题描述】:
我想将文件解析为 flake.nix 内的 Nix 列表值。
我有一个 shell 脚本可以做到这一点
perl -007 -nE 'say for m{[(]use-package \s* ([a-z-0-9]+) \s* (?!:nodep)}xsgm' init.el
如何在评估flake.nix时执行外部命令?
programs.emacs = {
enable = true;
extraConfig = builtins.readFile ./init.el;
extraPackages = elpa: (shellCommandToParseFile ./init.el); # Runs shell script
};
【问题讨论】:
-
如果你想使用以这种方式生成的 Nix 代码,你必须做一些叫做“从派生导入”的事情。在编写更多使用它的代码之前,您可能想了解人们试图摆脱这种做法的原因。
-
顺便说一句,你如何获得
init.el的有效 shebang?如果它是 elisp,我假设您正在使用 emacs 运行它?你能提供一个命令行供我在我的答案中使用吗? (自从 emacs 成为我的日常驱动程序以来已经很多年了)。 -
...它是perl脚本?为什么在 perl 脚本上使用 .el 扩展名?但我很高兴看到它不进行任何网络访问;这让事情变得容易多了。
标签: nix