Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nix-community/nurl
Generate Nix fetcher calls from repository URLs [maintainer=@figsoda]
https://github.com/nix-community/nurl
bitbucket codeberg crate crates fetch git gitea github gitlab hg mercurial nix prefetch sourcehut svn
Last synced: 24 days ago
JSON representation
Generate Nix fetcher calls from repository URLs [maintainer=@figsoda]
- Host: GitHub
- URL: https://github.com/nix-community/nurl
- Owner: nix-community
- License: mpl-2.0
- Created: 2022-12-30T02:06:33.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-10T15:31:28.000Z (7 months ago)
- Last Synced: 2024-04-15T11:59:46.371Z (7 months ago)
- Topics: bitbucket, codeberg, crate, crates, fetch, git, gitea, github, gitlab, hg, mercurial, nix, prefetch, sourcehut, svn
- Language: Rust
- Homepage: https://discourse.nixos.org/t/24374
- Size: 644 KB
- Stars: 366
- Watchers: 6
- Forks: 5
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - nix-community/nurl - badge](https://github.com/nix-community/nurl/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nurl/actions/workflows/ci.yml) (Applications / Utilities)
- awesome-nix - nurl - Generate Nix fetcher calls from repository URLs. (Command-Line Tools / Discovery)
- awesome-rust - nix-community/nurl - Generate Nix fetcher calls from repository URLs [![build-badge](https://github.com/nix-community/nurl/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nurl/actions/workflows/ci.yml) (Applications / Utilities)
- fucking-awesome-rust - nix-community/nurl - Generate Nix fetcher calls from repository URLs [![build-badge](https://github.com/nix-community/nurl/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nurl/actions/workflows/ci.yml) (Applications / Utilities)
- fucking-awesome-rust - nix-community/nurl - Generate Nix fetcher calls from repository URLs [![build-badge](https://github.com/nix-community/nurl/actions/workflows/ci.yml/badge.svg)](https://github.com/nix-community/nurl/actions/workflows/ci.yml) (Applications / Utilities)
README
# nurl
[![release](https://img.shields.io/github/v/release/nix-community/nurl?logo=github&style=flat-square)](https://github.com/nix-community/nurl/releases)
[![version](https://img.shields.io/crates/v/nurl?logo=rust&style=flat-square)][crate]
[![deps](https://deps.rs/repo/github/nix-community/nurl/status.svg?style=flat-square&compact=true)](https://deps.rs/repo/github/nix-community/nurl)
[![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/nurl/ci.yml?label=ci&logo=github-actions&style=flat-square)](https://github.com/nix-community/nurl/actions?query=workflow:ci)Generate Nix fetcher calls from repository URLs
```console
$ nurl https://github.com/nix-community/patsh v0.2.0 2>/dev/null
fetchFromGitHub {
owner = "nix-community";
repo = "patsh";
rev = "v0.2.0";
hash = "sha256-7HXJspebluQeejKYmVA7sy/F3dtU1gc4eAbKiPexMMA=";
}
```> If you want to generate Nix packages, feel free check out [nix-init](https://github.com/nix-community/nix-init), which builds on top of nurl
## Supported Fetchers
- builtins.fetchGit
- fetchCrate
- fetchFromBitbucket
- fetchFromGitHub
- fetchFromGitLab
- fetchFromGitea
- fetchFromGitiles
- fetchFromRepoOrCz
- fetchFromSourcehut
- fetchHex
- fetchPypi
- fetchgit
- fetchhg
- fetchsvn## Usage
```
Usage: nurl [OPTIONS] [URL] [REV]Arguments:
[URL] URL to the repository to be fetched
[REV] The revision or reference to be fetchedOptions:
-S, --submodules[=] Fetch submodules instead of using the fetcher's default [possible
values: true, false]
-f, --fetcher Specify the fetcher function instead of inferring from the
URL [possible values: builtins.fetchGit, fetchCrate,
fetchFromBitbucket, fetchFromGitHub, fetchFromGitLab,
fetchFromGitea, fetchFromGitiles, fetchFromRepoOrCz,
fetchFromSourcehut, fetchHex, fetchPypi, fetchgit, fetchhg,
fetchsvn]
-F, --fallback The fetcher to fall back to when nurl fails to infer it from
the URL [default: fetchgit] [possible values:
builtins.fetchGit, fetchCrate, fetchFromBitbucket,
fetchFromGitHub, fetchFromGitLab, fetchFromGitea,
fetchFromGitiles, fetchFromRepoOrCz, fetchFromSourcehut,
fetchHex, fetchPypi, fetchgit, fetchhg, fetchsvn]
-n, --nixpkgs Path to nixpkgs (in nix) [default: ]
-i, --indent Extra indentation (in number of spaces) [default: 0]
-H, --hash Only output the hash
-j, --json Output in json format
-p, --parse Parse the url without fetching the hash, output in json
format
-a, --arg Additional arguments to pass to the fetcher
-A, --arg-str Same as --arg, but accepts strings instead Nix expressions
-o, --overwrite Overwrite arguments in the final output, not taken into
consideration when fetching the hash
-O, --overwrite-str Same as --overwrite, but accepts strings instead Nix
expressions
-e, --expr Instead of fetching a URL, get the hash of a fixed-output
derivation, implies --hash and ignores all other options
-l, --list-fetchers List all available fetchers
-L, --list-possible-fetchers List all fetchers that can be generated without --fetcher
-s, --list-sep Print out the listed fetchers with the specified separator,
only used when --list-fetchers or --list-possible-fetchers is
specified
-h, --help Print help
-V, --version Print version
```## Comparison to [nix-prefetch](https://github.com/msteen/nix-prefetch)
- `nurl` infers the fetcher from the URL. For `nix-prefetch`, you need to pick the fetcher and supply the arguments manually.
- `nix-prefetch` relies on FOD which is slow, `nurl` tries to use alternatives when possible.
- `nix-prefetch` is more configurable and supports file attributes.
- `nix-prefetch` has an interface similar to `nix-build`.
- `nurl` has some nice features dedicated to generated packages (`--indent`, `--list-possible-fetchers`).## Changelog
See [CHANGELOG.md](CHANGELOG.md)
[crate]: https://crates.io/crates/nurl