#cargo-toml #cargo #package-version #query #binary #dev-tools #cargo-subcommand

app cargo-get

Cargo 插件,用于轻松查询 Cargo.toml 文件中的信息

11 个版本 (3 个稳定版)

1.1.1 2024年2月7日
1.1.0 2023年10月30日
1.0.0 2023年8月9日
0.3.3 2021年10月1日
0.2.2 2020年10月1日

#62Cargo 插件

Download history 900/week @ 2024-04-21 1650/week @ 2024-04-28 884/week @ 2024-05-05 1046/week @ 2024-05-12 872/week @ 2024-05-19 711/week @ 2024-05-26 989/week @ 2024-06-02 1325/week @ 2024-06-09 1139/week @ 2024-06-16 1346/week @ 2024-06-23 1348/week @ 2024-06-30 1058/week @ 2024-07-07 1009/week @ 2024-07-14 1618/week @ 2024-07-21 1086/week @ 2024-07-28 856/week @ 2024-08-04

每月下载量:4,640

Apache-2.0/MIT

28KB
536

Cargo 插件,用于轻松查询 Cargo.toml 文件中的信息

crates.io CI GitHub Release

概述

此插件帮助查询 Cargo.toml 文件中的信息,并可用于 shell 脚本或 CI/CD 管道中。插件一次只接受一个标志,并返回一个包含请求值的单个字符串。某些查询(例如关键字或作者)会返回多个值,这些值通过换行符分隔(每个值占一行)。

此插件受 cargo-edit 的启发,并作为 cargo_toml 的轻量级包装器。

贡献

感谢您的关注 - 我们非常欢迎您的贡献。

有关问题可以在 issue 中提出。为了帮助我们在快速和顺利地合并 pull request,请在提交大更改之前打开一个 issue。请保持 pull request 和提交内容的简洁。提交消息应包括提交的意图。cargo-get 使用 rustfmt 进行格式化,并使用 clippy 进行代码检查。

安装

预构建的二进制文件

  1. GitHub 最新版本 下载适用于您的 CPU 架构的二进制文件。
  2. 使用 chmod +x 使二进制文件可执行
  3. 将二进制文件放置在您的 $PATH 中,并将其重命名为 cargo-get

Cargo

请确保您已安装了较新的 rust/cargo 版本。

$ cargo install cargo-get

(请参阅 cargo 的文档以了解 cargo install 的工作原理以及如何设置您的系统以便找到 cargo 安装的二进制文件。)

示例

所有选项

$ cargo get -h
Cargo plugin to easily query information from Cargo.toml files

Usage: cargo-get [OPTIONS] <COMMAND>

Commands:
  package.name
  package.edition
  package.rust_version
  package.version
  package.build
  package.workspace
  package.authors
  package.links
  package.description
  package.homepage
  package.readme
  package.keywords
  package.categories
  package.exclude
  package.include
  package.license
  package.license_file
  package.repository
  package.default_run
  package.publish
  package.resolver
  package.metadata
  workspace.members
  workspace.package.authors
  workspace.package.categories
  workspace.package.description
  workspace.package.documentation
  workspace.package.edition
  workspace.package.exclude
  workspace.package.homepage
  workspace.package.include
  workspace.package.keywords
  workspace.package.license
  workspace.package.license_file
  workspace.package.publish
  workspace.package.readme
  workspace.package.repository
  workspace.package.rust_version
  workspace.package.version
  help                             Print this message or the help of the given subcommand(s)

Options:
      --entry <PATH>                                 Path to the crate root to query
      --delimiter <Tab | CR | LF | CRLF | String>    Delimiter for array values
      --terminator <CR | LF | CRLF | NUL | String>   String terminator for printed values. (Defaults to `LF`)
  -h, --help                                         Print help
  -V, --version                                      Print version

获取版本

$ cargo get package.version
0.2.1

$ cargo get package.version --pretty
v0.2.1

$ cargo get package.version --major --minor --patch --pre
0
2
1
alpha2

$ cargo get package.version --major --minor --delimiter="."
0.2

现在运行诸如以下命令也很容易

git tag $(cargo get package.version --pretty)

获取关键词

$ cargo get package.keywords
command-line-utilities
development-tools::cargo-plugins

自定义分隔符

# Use one of Tab, CR, LF, CRLF or a custom string.

$ cargo get package.keywords --delimiter Tab
command-line-utilities 	development-tools::cargo-plugins

$ cargo get package.keywords --delimiter=" -- "
command-line-utilities -- development-tools::cargo-plugins

$ cargo get package.keywords --delimiter=";"
command-line-utilities;development-tools::cargo-plugins

可选的入口点

# Full path
$ cargo get package.name --entry="../../some/other/project/Cargo.toml"
some-other-project

# Directory
$ cargo get package.name --entry="../../some/other/project"
some-other-project

# Current directory
$ cargo get package.name
current-project

GitHub Actions

包名

- name: Get package name
  id: cargo-get
  uses: nicolaiunrein/cargo-get@master
  with:
    subcommand: package.name

包作者

- name: Get package author
  id: cargo-get
  uses: nicolaiunrein/cargo-get@master
  with:
    subcommand: package.authors

依赖项

~1.7–2.4MB
~46K SLoC