Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [maintainer=@figsoda]
Go to file
2023-07-01 16:50:45 -04:00
.github build(deps): bump cachix/install-nix-action from 21 to 22 2023-06-19 09:09:09 +00:00
assets assets: add readme 2023-04-21 12:25:09 -04:00
license-store-cache update rustfmt.toml 2023-07-01 16:50:45 -04:00
scripts rust: add tests for dependency inference 2023-03-18 11:50:26 -04:00
src update rustfmt.toml 2023-07-01 16:50:45 -04:00
.gitignore move license store cache to its own derivation 2023-03-12 12:30:13 -04:00
build.rs update rustfmt.toml 2023-07-01 16:50:45 -04:00
Cargo.lock build(deps): bump clap from 4.3.9 to 4.3.10 2023-06-30 08:36:36 +00:00
Cargo.toml build(deps): bump clap from 4.3.9 to 4.3.10 2023-06-30 08:36:36 +00:00
CHANGELOG.md bump 2023-04-29 19:13:51 -04:00
flake.lock update dependencies 2023-06-29 18:20:40 -04:00
flake.nix flake: better fix for the test 2023-06-29 19:49:58 -04:00
LICENSE initial commit 2023-01-18 14:35:23 -05:00
README.md go: add support for dependency inference 2023-07-01 16:27:10 -04:00
rustfmt.toml update rustfmt.toml 2023-07-01 16:50:45 -04:00

nix-init

matrix release version deps license ci

Generate Nix packages from URLs

Note: It is likely that the generated package will not work without some tweaks, also remember to double check the license and description even if it does work

  • Hash prefetching powered by nurl with support for cargoHash and vendorHash
  • Dependency inference for Rust, Go, and Python projects
  • Interactive prompts with fuzzy tab completions
  • License detection

Installation

The latest release of nix-init is packaged in nixpkgs and kept up to date on the unstable branches

If you want to use a more recent snapshot of nix-init, it is also available as a flake. The following command is equivalent to running nix-init --help:

nix run github:nix-community/nix-init -- --help

or if you don't have flakes enabled:

nix run --extra-experimental-features "flakes nix-command" github:nix-community/nix-init -- --help

Usage

Usage: nix-init [OPTIONS] [OUTPUT]

Arguments:
  [OUTPUT]  The path or directory to output the generated file to

Options:
  -u, --url <URL>          Specify the URL
  -n, --nixpkgs <NIXPKGS>  Path to nixpkgs (in nix)
  -c, --config <CONFIG>    Specify the config file
  -h, --help               Print help
  -V, --version            Print version

Supported builders

  • stdenv.mkDerivation
  • buildRustPackage
  • buildPythonApplication and buildPythonPackage
  • buildGoModule

Supported fetchers

  • fetchCrate
  • fetchFromGitHub
  • fetchFromGitLab
  • fetchFromGitea
  • fetchPypi
  • All other fetchers supported by nurl are also supported, you just have to manually input the tag/revision of the package

Configuration

nix-init will try to find nix-init/config.toml under XDG configuration directories

# ~/.config/nix-init/config.toml

# maintainers that will get added to the package meta
maintainers = ["figsoda"]

# path to nixpkgs, equivalent to `--nixpkgs`
nixpkgs = "<nixpkgs>"

# access tokens to access private repositories and avoid rate limits
[access-tokens]
"github.com" = "ghp_blahblahblah..."
"gitlab.com".command = ["secret-tool", "or", "whatever", "you", "use"]
"gitlab.gnome.org".file = "/path/to/api/token"

Changelog

See CHANGELOG.md