nmattia / niv

Easy dependency management for Nix projects
https://github.com/nmattia/niv
MIT License
1.58k stars 77 forks source link

vendor dependencies #353

Open jfroche opened 2 years ago

jfroche commented 2 years ago

Reading code in dependencies locally is sometimes useful while coding. Different language are coming with this notion of vendoring dependencies locally (go mod vendor, cargo vendor, ...). I am using this script to access niv my dependencies locally:

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p jq -p nix
mkdir -p vendor
jq -r 'to_entries[] | select( .value.url and .value.sha256 ) | [ .key, .value.url, .value.sha256 ] | @tsv' sources.json \
| while IFS=$'\t' read -r name url hash; do
  s=$(nix-prefetch-url --unpack --print-path "$url" "$hash" | tail -n 1)
  ln -n -f -s "$s" "vendor/$name"
done

I was wondering if a similar command (niv vendor ?) could be added to niv ?

nmattia commented 2 years ago

I could have sworn I created a ticket for this years ago, but I can't find it now. That's a great idea!