diff options
| author | sommerfeld <sommerfeld@sommerfeld.dev> | 2026-09-17 15:05:36 +0100 |
|---|---|---|
| committer | sommerfeld <sommerfeld@sommerfeld.dev> | 2026-09-17 15:05:36 +0100 |
| commit | 64f4695932ff4d27967cf4f0e854e40371dbcc90 (patch) | |
| tree | fd7106349ed3705a6de32b3a42e952f2c07582db /nix/fetch-crate.nix | |
| parent | e67e4fefb7085f94aff5712e9fdbf21ef085f494 (diff) | |
| download | dotfiles-64f4695932ff4d27967cf4f0e854e40371dbcc90.tar.gz dotfiles-64f4695932ff4d27967cf4f0e854e40371dbcc90.tar.bz2 dotfiles-64f4695932ff4d27967cf4f0e854e40371dbcc90.zip | |
Fetch Rust crates from the static archive server
Diffstat (limited to 'nix/fetch-crate.nix')
| -rw-r--r-- | nix/fetch-crate.nix | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/nix/fetch-crate.nix b/nix/fetch-crate.nix new file mode 100644 index 0000000..733d83a --- /dev/null +++ b/nix/fetch-crate.nix @@ -0,0 +1,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"; + } + ) +) |
