I’m trying to use a local fileserver for cargo, and serving packages to an unsuspecting build process requires anticipating in advance what packages will be requested. This is something I need to be able to do reasonably easily and thoroughly, since crates.io dependencies are everywhere; even
rust-lang/rust/bootstrap has some dependencies:
Downloading cmake v0.1.24 Downloading filetime v0.1.10 Downloading num_cpus v1.6.2 Downloading libc v0.2.26 Downloading rustc-serialize v0.3.24 Downloading toml v0.1.30 Downloading getopts v0.2.14 Downloading gcc v0.3.51 Compiling bootstrap v0.0.0 (file:///home/lampam/asd/clone/rust/src/bootstrap) Finished dev [unoptimized] target(s) in 10.5 secs
So: Given a directory with a
Cargo.toml, I would like to be able to gather all unique
(package, version) pairs that it could possibly depend on, recursively. And not necessarily in rust; any way in which I could obtain a text file in a reasonably structured format would do.
Right now I’m using this dumb little homegrown script that screenscrapes output from the
cargo list feature added by cargo-edit. It gets me halfway, but it’s easily tripped up by various Cargo.toml features…