Crates.io | nixcfg |
lib.rs | nixcfg |
version | 0.2.0 |
source | src |
created_at | 2018-09-09 11:20:05.070007 |
updated_at | 2018-09-09 11:20:05.070007 |
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.