summaryrefslogtreecommitdiffstatshomepage
path: root/nix/fetch-crate.nix
blob: 733d83a9a6e8de7bd57655397e42f80375a5045a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fetchurl: attrs:
let
  crate = builtins.match "https://crates[.]io/api/v1/crates/([^/]+)/([^/]+)/download" (
    attrs.url or ""
  );
in
fetchurl (
  attrs
  // (
    if crate == null then
      { }
    else
      {
        url = "https://static.crates.io/crates/${builtins.elemAt crate 0}/${builtins.elemAt crate 0}-${builtins.elemAt crate 1}.crate";
      }
  )
)