1 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2018 年 9 月 9 日 |
---|
#7 在 #nixpkgs
16KB
249 行代码(不含注释)
nixcfg
用于查询和修改 .nix 文件的命令行工具。
用法
nixcfg 0.1.0
Grégoire Geis <git@gregoirege.is>
Command line utility to query and modify .nix files.
USAGE:
nixcfg [FLAGS] [OPTIONS] <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-i, --in-place Modify in place instead of printing result to stdout.
-V, --version Prints version information
OPTIONS:
-f, --file <input> Input .nix file to query or modify. [default: /etc/nixos/configuration.nix]
SUBCOMMANDS:
get Get the value at the given path.
set Set the value at the given path.
示例
考虑以下文件
# file.nix
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [ ];
networking.firewall.enable = true;
networking.firewall.allowedTCPPorts = [ 80 8080 8000 24800 ];
nixpkgs.config = { allowBroken = false; allowUnfree = true; };
}
查询值
nixpkg -.nix get environment.systemPackages
返回with pkgs; [ ]
。nixpkg -.nix get nixpkgs.config
返回{ allowBroken = false; allowUnfree = true; }
。nixpkg -.nix get nixpkgs.config.allowBroken
返回false
。
请注意,nixcfg
不识别属于同一对象的值。
nixpkg -.nix get networking.firewall.enable
返回true
。nixpkg -.nix get networking.firewall.allowedTCPPorts
返回[ 80 8080 8000 24800 ]
。nixpkg -.nix get networking.firewall
无法找到匹配的值。
更新值
nixpkg-f file.nix set networking.firewall.enablefalse
yields
# file.nix
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [ ];
networking.firewall.enable = false;
networking.firewall.allowedTCPPorts = [ 80 8080 8000 24800 ];
nixpkgs.config = { allowBroken = false; allowUnfree = true; };
}
待办事项
- 添加如果键之前不存在,则插入值的函数。
免责声明
此项目非常新,仅在有限的测试套件中进行了测试。
自行承担风险使用。
依赖关系
~3.5MB
~67K SLoC