An open API service indexing awesome lists of open source software.

https://github.com/determinatesystems/nix-config-parser


https://github.com/determinatesystems/nix-config-parser

Last synced: about 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# nix-config-parser

A simple parser for the Nix configuration file format.

Based off of https://github.com/NixOS/nix/blob/0079d2943702a7a7fbdd88c0f9a5ad677c334aa8/src/libutil/config.cc#L80-L138.

## Usage

### Read from a file

```rust
use std::error::Error;

fn main() -> Result<(), Box> {
std::fs::write(
"nix.conf",
b"experimental-features = flakes nix-command\nwarn-dirty = false\n",
)?;

let nix_conf = nix_config_parser::NixConfig::parse_file(&std::path::Path::new("nix.conf"))?;

assert_eq!(
nix_conf.settings().get("experimental-features").unwrap(),
"flakes nix-command"
);
assert_eq!(nix_conf.settings().get("warn-dirty").unwrap(), "false");

std::fs::remove_file("nix.conf")?;

Ok(())
}
```

### Read from a string

```rust
use std::error::Error;

fn main() -> Result<(), Box> {
let nix_conf_string = String::from("experimental-features = flakes nix-command");
let nix_conf = nix_config_parser::NixConfig::parse_string(nix_conf_string, None)?;

assert_eq!(
nix_conf.settings().get("experimental-features").unwrap(),
"flakes nix-command"
);

Ok(())
}
```