| Crates.io | nixcfg |
| lib.rs | nixcfg |
| version | 0.2.0 |
| created_at | 2018-09-09 11:20:05.070007+00 |
| updated_at | 2018-09-09 11:20:05.070007+00 |
| description | Command line utility to query and modify .nix files. |
| homepage | https://github.com/6A/nixcfg |
| repository | https://github.com/6A/nixcfg |
| max_upload_size | |
| id | 83712 |
| size | 16,662 |
Command line utility to query and modify .nix files.
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.
Let's consider the following file:
# 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 -f file.nix get environment.systemPackages yields with pkgs; [ ].nixpkg -f file.nix get nixpkgs.config yields { allowBroken = false; allowUnfree = true; }.nixpkg -f file.nix get nixpkgs.config.allowBroken yields false.Please note that nixcfg does not recognize values belonging to a same object.
nixpkg -f file.nix get networking.firewall.enable yields true.nixpkg -f file.nix get networking.firewall.allowedTCPPorts yields [ 80 8080 8000 24800 ].nixpkg -f file.nix get networking.firewall fails to find a matching value.nixpkg -f file.nix set networking.firewall.enable false
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; };
}
This project is very new, and has only been tested in limited test suites.
Use at your own risks.