juspay / omnix

🚧 A Nix wrapper to improve developer experience
https://omnix.page
GNU Affero General Public License v3.0
70 stars 5 forks source link
developer-experience nix nix-flakes nixos

project chat

omnix

Pronounced /ɒmˈnɪks/

[!NOTE] 🚧 omnix is in active development. It aims to supplement the Nix CLI to improve developer experience.

Usage

See https://omnix.page/

Developing

  1. Install Nix
  2. Setup direnv
  3. Clone this repo, cd to it, and run direnv allow.

This will automatically activate the nix develop shell. Open VSCode and install recommended extensions, ensuring that direnv activates in VSCode as well.

Running locally

To run omnix-cli,

just watch # Or `just w`; you can also pass args, e.g.: `just w show`

Nix workflows

Inside the nix develop shell (activated by direnv) you can use any of the cargo or rustc commands, as well as just workflows. Nix specific commands can also be used to work with the project:

# Full nix build of CLI
nix build .#default

# Build and run the CLI
nix run

Contributing

[!TIP] Run just fmt to autoformat the source tree.

[^cc]: We don't use any automatic changelog generator for this repo.

Crates

Crate Description
./crates/nix_rs Rust interface to the Nix command line
./crates/nix_health Nix health check library and executable
./crates/nixci Define and build CI for Nix projects anywhere
./crates/omnix-init Rich flake templates
https://github.com/juspay/direnv-rs Rust bindings for direnv