https://github.com/ben-ph/nixos-rsbuild

A slightly opinionated RIIR of the nixos-rebuild cli tool.

https://github.com/ben-ph/nixos-rsbuild

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

A slightly opinionated RIIR of the nixos-rebuild cli tool.

Basic Info
  • Host: GitHub
  • Owner: Ben-PH
  • License: unlicense
  • Language: Rust
  • Default Branch: main
  • Size: 130 KB
Statistics
  • Stars: 1
  • Watchers: 3
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

nixos-rsbuild is a (slightly opinionated) rewrite of the nixos-rebuild cli utility. The goals are as follows

  • minimal barrier-of-entry to read/write the codebase in a meaningful way
  • provide a pleasant documentation/help UX
  • showcase Rust as an implementation tool in the nix/nixos ecosystem
  • (Initially): Stand-in replacement for most of my build/switch/etc. needs
  • (Stretch): Cover all supported use-cases of nixos-rebuild

#### Opinions

  • (TODO) Will fail if cannot find a flake.nix unless --no-flake is used
  • Makes more args/flags mutually exclusive. --upgrade-all implios --upgrade, so providing both will be an error.
  • Aims to be relatively platform agnostic.
  • no sudo: can only run as non-root user. in future, will add --sudo | -s flag to relevant subcommands in place of --use-remote-sudo

Usage:

cargo run -- <args>

  • cargo run -- -h show top level help
  • cargo run -- --help show top level help in long-form
  • cargo run -- <builders | utils> -h show information on the two classes of tasks
  • cargo run -- <subcommand> <task> --help show task help in long-form

For the "Rust Curious/Skeptic"

If you are reading this, you are probably a Nix/NixOS nerd. If you are curious and/or skeptical about Rust, particularly in the Nix/NixOS ecosystem, I strongly encourage you to ask questions, express your skepticism, and other wise promote lively discussion we can all enjoy.

Roadmap

NOTE: <flakeref> => /path/to/dir#flake.attr

  1. [x] nixos-rsbuild list-generations [--json]
  2. [x] nixos-rsbuild build
  3. [x] nixos-rsbuild build --flake /path/to#machine_name
  4. [x] nixos-rebuild boot --flake <flakeref> -> nixos-rs boot <flakeref>
  5. [x] nixos-rebuild boot -> nixos-rsbuild boot --config
  6. [x] nixos-rebuild test ... -> nixos-rsbuild test ...
  7. [x] nixos-rebuild switch ... -> nixos-rsbuild switch ...
  8. [x] nixos-rebuild switch | boot | test ... --use-remote-sudo -> nixos-rsbuild <switch | boot | test> -s ...

TODOs

  • [x] split out things into a library to leverage cargo doc
  • [ ] add no_op feature so as to only emulate changes in the output
  • [ ] black-box testing
  • [x] white-box testing
  • [ ] system-level testing
  • [ ] non-local target-aware
  • [ ] non-local builde-aware

Owner

  • Name: Ben
  • Login: Ben-PH
  • Kind: user
  • Location: Cornus, France

A budding developer coming into early middle ages, a career change and new passions is what drives me.

GitHub Events

Total
  • Watch event: 1
  • Member event: 1
  • Issue comment event: 3
  • Push event: 19
  • Pull request review event: 5
  • Pull request review comment event: 5
  • Pull request event: 14
  • Fork event: 1
  • Create event: 8
Last Year
  • Watch event: 1
  • Member event: 1
  • Issue comment event: 3
  • Push event: 19
  • Pull request review event: 5
  • Pull request review comment event: 5
  • Pull request event: 14
  • Fork event: 1
  • Create event: 8

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.38
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.38
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Ben-PH (10)
  • con-f-use (6)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • actions-rust-lang/rustfmt v1 composite
  • actions-rust-lang/setup-rust-toolchain v1 composite
  • actions/checkout v4 composite
Cargo.lock cargo
  • aho-corasick 1.1.3
  • android-tzdata 0.1.1
  • android_system_properties 0.1.5
  • anstream 0.6.15
  • anstyle 1.0.8
  • anstyle-parse 0.2.5
  • anstyle-query 1.1.1
  • anstyle-wincon 3.0.4
  • autocfg 1.4.0
  • bitflags 2.6.0
  • bumpalo 3.16.0
  • camino 1.1.9
  • cc 1.1.31
  • cfg-if 1.0.0
  • cfg_aliases 0.2.1
  • chrono 0.4.38
  • clap 4.5.20
  • clap_builder 4.5.20
  • clap_derive 4.5.18
  • clap_lex 0.7.2
  • colorchoice 1.0.2
  • core-foundation-sys 0.8.7
  • env_filter 0.1.2
  • env_logger 0.11.5
  • errno 0.3.9
  • fastrand 2.1.1
  • heck 0.5.0
  • hostname 0.4.0
  • humantime 2.1.0
  • iana-time-zone 0.1.61
  • iana-time-zone-haiku 0.1.2
  • is_terminal_polyfill 1.70.1
  • itoa 1.0.11
  • js-sys 0.3.72
  • libc 0.2.159
  • linux-raw-sys 0.4.14
  • log 0.4.22
  • memchr 2.7.4
  • nix 0.29.0
  • num-traits 0.2.19
  • once_cell 1.20.2
  • proc-macro2 1.0.87
  • quote 1.0.37
  • regex 1.11.0
  • regex-automata 0.4.8
  • regex-syntax 0.8.5
  • rustix 0.38.37
  • ryu 1.0.18
  • semver 1.0.23
  • serde 1.0.210
  • serde_derive 1.0.210
  • serde_json 1.0.132
  • shlex 1.3.0
  • strsim 0.11.1
  • syn 2.0.79
  • tempfile 3.13.0
  • unicode-ident 1.0.13
  • utf8parse 0.2.2
  • wasm-bindgen 0.2.95
  • wasm-bindgen-backend 0.2.95
  • wasm-bindgen-macro 0.2.95
  • wasm-bindgen-macro-support 0.2.95
  • wasm-bindgen-shared 0.2.95
  • windows 0.52.0
  • windows-core 0.52.0
  • windows-sys 0.52.0
  • windows-sys 0.59.0
  • windows-targets 0.52.6
  • windows_aarch64_gnullvm 0.52.6
  • windows_aarch64_msvc 0.52.6
  • windows_i686_gnu 0.52.6
  • windows_i686_gnullvm 0.52.6
  • windows_i686_msvc 0.52.6
  • windows_x86_64_gnu 0.52.6
  • windows_x86_64_gnullvm 0.52.6
  • windows_x86_64_msvc 0.52.6
Cargo.toml cargo