48 个版本 (24 个重大更新)
新 0.25.3 | 2024 年 8 月 22 日 |
---|---|
0.25.1 | 2024 年 7 月 30 日 |
0.24.1 | 2024 年 3 月 11 日 |
0.20.4 | 2023 年 12 月 30 日 |
0.7.0 | 2023 年 5 月 24 日 |
131 在 Cargo 插件 中
每月 311 次下载
34KB
681 行
用法
命令行界面
$ cargo list -h
List and update installed crates
Usage: cargo list [OPTIONS] [PATTERN]...
Arguments:
[PATTERN]... List/update crates matching given pattern(s)
Options:
-f <FORMAT> Output format [default: md] [possible values: json,
json-pretty, md, rust, rust-pretty]
-k <KIND> Kind(s) [default: external] [possible values: local, git,
external]
-a All kinds
-o, --outdated Hide up-to-date crates
-I Ignore version requirements
-R Consider a crate to be outdated if compiled with a Rust
version different than the active toolchain
-u, --update Update outdated crates
-n, --dry-run Dry run
-c <PATH> Cargo install metadata file [default: ~/.cargo/.crates2.json]
-r, --readme Print readme
-h, --help Print help
-V, --version Print version
$ cargo list -V
cargo-list 0.25.3
列出已安装的外部crate
cargo list
列出包含 cargo
的已安装外部crate
cargo list cargo
列出以 cargo
开头的外部crate
cargo list ^cargo
列出以 list
结尾的外部crate
cargo list 'list$'
列出匹配 cargo-list
的外部crate
cargo list '^cargo-list$'
列出过时的外部crate
cargo list -o
更新过时的外部crate
cargo list -ou
列出更新过时的外部crate的 cargo install
命令
cargo list -oun
列出忽略版本要求的过时外部crate
cargo list -oI
列出包含旧 Rust 编译的过时外部crate
cargo list -oR
更新忽略版本要求并包含旧 Rust 编译的过时外部crate
cargo list -oIRu
列出通过 git 安装的crate
cargo list -k git
列出本地已安装的crate
cargo list -k local
列出本地、git 和外部已安装的crate
cargo list -k local -k git -k external
或更短
cargo list -a
列出通过 git 安装的过时crate
cargo list -k git -o
列出本地过时已安装的crate
cargo list -k local -o
列出本地、git 和外部过时已安装的crate
cargo list -k local -k git -k external -o
或更短
cargo list -ao
将已安装的外部crate导出到 JSON
cargo list -f json
将已安装的外部crate导出到格式化的 JSON
cargo list -f json-pretty
将已安装的外部crate导出到 Rust
cargo list -f rust
将已安装的外部crate导出到格式化的 Rust
cargo list -f rust-pretty
将过时已安装的外部crate导出到 JSON
cargo list -f json -o
将过时已安装的外部crate导出到格式化的 JSON
cargo list -f json-pretty -o
将过时已安装的外部crate导出到 Rust
cargo list -f rust -o
将过时已安装的外部crate导出到格式化的 Rust
cargo list -f rust-pretty -o
库
use cargo_list::Crates;
use expanduser::expanduser;
use rayon::prelude::*;
use std::collections::BTreeMap;
let path = expanduser("~/.cargo/.crates2.json").unwrap();
match Crates::from(&path) {
Ok(installed) => {
if installed.is_empty() {
println!("No crates installed!");
} else {
let all = installed.crates();
let outdated = all
.par_iter()
.filter_map(|(&name, &c)| c.outdated.then_some((name, c)))
.collect::<BTreeMap<_, _>>();
if outdated.is_empty() {
// List all crates in CSV
println!("Name,Installed");
for (name, c) in &all {
println!("{name},{}", c.installed);
}
} else {
// List outdated crates in CSV
println!("Name,Installed,Available");
for (name, c) in &outdated {
println!("{name},{},{}", c.installed, c.available);
}
// Print the `cargo install` commands for outdated crates
// for command in outdated
// .iter()
// .map(|(_name, c)| c.update_command().join(" "))
// {
// println!("{command}");
// }
// Update outdated crates
// outdated.iter().for_each(|(_name, c)| c.update());
}
}
}
Err(e) => {
eprintln!("Error: {e}");
}
}
如果您只想包含部分crate,而不是使用Crates::from(&path)
,请使用Crates::from_include(&path, &patterns)
,其中patterns
是&str
regex
模式的切片。
变更日志
请阅读CHANGELOG.md
(仓库链接)。
依赖
~11–29MB
~422K SLoC