6 个版本
0.3.1 | 2023年6月4日 |
---|---|
0.3.0 | 2022年1月15日 |
0.2.1 | 2021年1月3日 |
0.2.0 | 2020年12月5日 |
0.1.0 | 2019年3月16日 |
#229 在 Cargo 插件 中
每月 30 次下载
27KB
101 行
注意:原始代码库来自 cargo open
项目,并修改为用于列出源文件。
cargolocal
一个第三方 Cargo 扩展,用于列出依赖项的本地源位置。
安装
您可以通过在 crates.io 上运行以下命令来安装此工具:
$ cargo install cargo-local
这将把可执行文件 cargo-local
安装到您的 cargo bin
目录中,在 *nix 系统上通常是 ~/.cargo/bin
。您应该将该目录添加到您的 PATH
中。
用法
安装后,您应该能够在任何 cargo 项目的根目录下运行以下命令:
$ cargo local
这将输出所有依赖项的源位置列表,或者在文件系统中存在的那些。如果您提供了一组包名,该工具将只显示那些包的位置。示例输出
$ cargo local clap cargo
/home/andrew/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.32.0
/home/andrew/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-0.28.0
您可以使用 --only-names
来运行命令,只列出包名 - 例如用于生成 shell 完成功能
$ cargo local --only-names
toml
semver-parser
fuchsia-zircon
atty
...
单独使用时,这可能不是特别有趣,但它可以用作其他工具(如 shell 脚本)的组件。以下是一些示例
cargo-open
这个代码库主要复制的项目可以大致实现如下
$ $EDITOR `cargo local <package-name>`
一个更长的脚本,用于处理错误,可能看起来像这样
#! /bin/sh
if [ $# -lt 2 ]; then
echo "USAGE: cargo open <package-name>"
exit 1
fi
_subcommand=$1 # ignore the "open" subcommand
package=$2
path=$(cargo local $package)
status=$?
if [ $status -ne 0 ]; then
exit $status
fi
$EDITOR "$path"
cargo-tags
这个分支的原始计划。类似这样的工具已经存在,如 rusty-tags,但可以通过单行命令轻松实现类似功能:ctags -o Cargo.tags -R $(cargo local)
。一个带有错误处理的更长的脚本
#! /bin/sh
sources=$(cargo local)
status=$?
if [ $status -ne 0 ]; then
exit $status
fi
echo "$sources" | xargs --delimiter="\n" ctags -o Cargo.tags -R
贡献
您可以通过执行以下命令在本地运行此工具:cargo run local
。请注意子命令,它是有必要的,因为通常它会被调用为 cargo local
。
如果您想在不同的目录中运行它,您可以使用以下命令安装本地程序:cargo install --path . --force
,或者您可以在 target/debug/cargo-local
中找到编译的二进制文件,并通过执行完整路径来运行它。
如果您做出了一些对您有用的修改,请考虑在 github 上提交一个拉取请求。如果您发现了一个错误或不确定如何实现某个特定功能,请随意打开一个问题并寻求帮助。
依赖关系
~52–84MB
~1.5M SLoC