mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-24 14:28:42 +00:00
Refactor, improvements and bugfix for resolution and installation process (#619)
* Refactor: Extract new mod `ops::resolve::resolution` * Refactor: Extract new type `ResolutionFetch` * Refactor: Extract new type `ResolutionSource` * Improve `Resolution::print`: Provides more details on which crate is the resolution for. * Make `Resolution::print` a pub fn * Refactor: Extract new fn `ResolutionFetch::install` * Refactor: Extract new async fn `ResolutionSource::install` * Optimize `ResolutionSource::install` avoiding `OsStr::to_string_lossy`. * Add new dep command-group v2.0.0 to binstalk with feat with-tokio * Fix `ResolutionSource::install`: Use `AsyncCommandGroup::group_spawn` instead of `tokio::process::Command::spawn` to ensure all the processes spanwed by the `cargo` process can be terminated with one signal sent to the `cargo` process. * Fix printing resolution: Make sure they are printed without interleaving * Refactor `entry::install_crates` * Improve dry-run output for `ResolutionSource::install` * Refactor: Extract new fn `ResolutionFetch::print` * Refactor: Extract new fn `ResolutionSource::print` * Optimize `Resolution`: Box unit variant `Fetch` * Improve formatting of `tokio::process::Command` Prints out sth like `cargo install ...` instead of the `Debug::fmt`. * Improve dry-run output Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
611485de52
commit
6bdb26930e
7 changed files with 323 additions and 289 deletions
|
@ -14,6 +14,7 @@ async-trait = "0.1.60"
|
|||
binstalk-downloader = { version = "0.2.0", path = "../binstalk-downloader" }
|
||||
binstalk-types = { version = "0.1.0", path = "../binstalk-types" }
|
||||
cargo_toml = "0.13.0"
|
||||
command-group = { version = "2.0.0", features = ["with-tokio"] }
|
||||
compact_str = { version = "0.6.1", features = ["serde"] }
|
||||
crates_io_api = { version = "0.8.1", default-features = false }
|
||||
detect-targets = { version = "0.1.3", path = "../detect-targets" }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue