Settings

Theme

Show HN: Nurl: Generate Nix fetcher calls from repository URLs

github.com

1 points by figsoda 3 years ago · 0 comments · 2 min read

Reader

`nurl` is like a `nix-prefetch-git` that selects the optimal fetcher inferred from the URL, with a wide support of fetchers listed below.

Here is a quick demo of how it works:

    $ 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=";
    }
### 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 fetched

    Options:
      -S, --submodules[=<SUBMODULES>]      Fetch submodules instead of using the fetcher's default [possible
                                           values: true, false]
      -f, --fetcher <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 <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 <NIXPKGS>              Path to nixpkgs (in nix) [default: <nixpkgs>]
      -i, --indent <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 <NAME> <EXPR>              Additional arguments to pass to the fetcher
      -A, --arg-str <NAME> <STRING>        Same as --arg, but accepts strings instead Nix expressions
      -o, --overwrite <NAME> <EXPR>        Overwrite arguments in the final output, not taken into
                                           consideration when fetching the hash
      -O, --overwrite-str <NAME> <STRING>  Same as --overwrite, but accepts strings instead Nix
                                           expressions
      -l, --list-fetchers                  List all available fetchers
      -L, --list-possible-fetchers         List all fetchers that can be generated without --fetcher
      -s, --list-sep <SEPARATOR>           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

No comments yet.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection