通过 configuration.nix 覆盖构建



是否可以覆盖现有包的构建脚本,或者在这种情况下是带有扩展的vscode。我知道如何覆盖一个选项,在这个包中是vscodeExtensions.

这似乎显示了一种方法,但我似乎看不到在文件中覆盖runCommand的位置。

覆盖函数只能更改函数的输入。不能修改任意子表达式。

假设您只想向配置添加扩展,在我看来,您不需要实际修改调用runCommand的整个表达式。

以下是覆盖vscodeExtensions参数的方法:

let
overlay = self: super: {
vscode-with-extensions = super.vscode-with-extensions.override {
vscodeExtensions =
super.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "vscode-hie-server";
publisher = "alanz";
version = "0.0.19";
sha256 = "0x0cs7c5q90p1ffig2wb5v21z3yj3p2chgpvbnlm4gfsnw7qpfzr";
}
] ++ with super.vscode-extensions; [
bbenoist.Nix
];
};
};
in
# NixOS:
# { nixpkgs.overlays = [ overlay ]; }
#
# or nix-build:
(import <nixpkgs> {
overlays = [ overlay ];
}).vscode-with-extensions

如果您希望此代码段作为 NixOS 配置,请注释 nix-build 部分,取消注释 NixOS 部分,然后您将有一个模块可以添加到 NixOSimports中。

免责声明:这不是我的设置,我只是在检查一下。至少尼克斯部分似乎有效。

相关内容

最新更新