Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nix-community/nix-init
Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [maintainer=@figsoda]
https://github.com/nix-community/nix-init
cargo go nix nixpkgs poetry python rust template
Last synced: 24 days ago
JSON representation
Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [maintainer=@figsoda]
- Host: GitHub
- URL: https://github.com/nix-community/nix-init
- Owner: nix-community
- License: mpl-2.0
- Created: 2023-01-18T19:45:48.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-05T16:19:16.000Z (7 months ago)
- Last Synced: 2024-04-15T11:59:39.664Z (7 months ago)
- Topics: cargo, go, nix, nixpkgs, poetry, python, rust, template
- Language: Rust
- Homepage: https://discourse.nixos.org/t/25035
- Size: 1.15 MB
- Stars: 704
- Watchers: 6
- Forks: 17
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - nix-community/nix-init - badge](https://github.com/nix-community/nix-init/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nix-init/actions/workflows/ci.yml) (Applications / Utilities)
- awesome-nix - nix-init - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more. (Command-Line Tools / Discovery)
- awesome-rust - nix-community/nix-init - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [![build-badge](https://github.com/nix-community/nix-init/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nix-init/actions/workflows/ci.yml) (Applications / Utilities)
- fucking-awesome-rust - nix-community/nix-init - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [![build-badge](https://github.com/nix-community/nix-init/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nix-init/actions/workflows/ci.yml) (Applications / Utilities)
- fucking-awesome-rust - nix-community/nix-init - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more [![build-badge](https://github.com/nix-community/nix-init/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nix-init/actions/workflows/ci.yml) (Applications / Utilities)
README
# nix-init
[![matrix](https://img.shields.io/matrix/nix-init:nixos.org?server_fqdn=matrix.org&style=flat-square)](https://matrix.to/#/#nix-init:nixos.org)
[![release](https://img.shields.io/github/v/release/nix-community/nix-init?logo=github&style=flat-square)](https://github.com/nix-community/nix-init/releases)
[![version](https://img.shields.io/crates/v/nix-init?logo=rust&style=flat-square)](https://crates.io/crates/nix-init)
[![license](https://img.shields.io/badge/license-MPL--2.0-blue?style=flat-square)](https://www.mozilla.org/en-US/MPL/2.0)
[![ci](https://img.shields.io/github/actions/workflow/status/nix-community/nix-init/ci.yml?label=ci&logo=github-actions&style=flat-square)](https://github.com/nix-community/nix-init/actions?query=workflow: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![](https://user-images.githubusercontent.com/40620903/226211877-2d583d09-4fbc-4869-8248-6166edde21cc.gif)
## Installation
The latest release of nix-init is packaged in nixpkgs and kept up to date on the
unstable branches![](https://repology.org/badge/vertical-allrepos/nix-init.svg)
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`:```bash
nix run github:nix-community/nix-init -- --help
```or if you don't have flakes enabled:
```bash
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 toOptions:
-u, --url Specify the URL
-n, --nixpkgs Path to nixpkgs (in nix)
-C, --commit[=] Commit the changes if the output path is name-based (RFC 140) [possible values: true, false]
-c, --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```toml
# ~/.config/nix-init/config.toml# maintainers that will get added to the package meta
maintainers = ["figsoda"]# path to nixpkgs (in nix), equivalent to `--nixpkgs`
nixpkgs = "" # use the nixpkgs from channels (default)
# nixpkgs = 'builtins.getFlake "nixpkgs"' # use the nixpkgs from the flake registry# commit the changes if the output path is name-based (RFC 140)
# see https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name for more information
commit = true# 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](CHANGELOG.md)
[nurl]: https://github.com/nix-community/nurl