7 个版本
使用旧的 Rust 2015
0.2.4 | 2017年11月7日 |
---|---|
0.2.2 | 2016年9月6日 |
0.2.1 | 2015年12月24日 |
0.1.5 | 2015年11月14日 |
#296 在 Cargo 插件
37 每月下载量
54KB
972 行
cargo-count
A cargo 子命令,用于显示项目中源代码的行数,包括 Rust 源文件的简单 unsafe
计数器。此子命令最初基于并受到项目 tokei(由 Aaronepower 提供)的启发
演示
要计算 Rust 仓库中的源代码(检出 4c99649
),并打印一些关于有多少 "unsafe" 代码存在的简单统计信息。
注意: Rust 仓库相当大,如果您网络连接速度较慢,请考虑使用较小的仓库,例如 cargo-count
仓库。
$ git clone https://github.com/rust-lang/rust
$ cd rust
$ cargo count --separator , --unsafe-statistics
Gathering information...
Language Files Lines Blanks Comments Code Unsafe (%)
-------- ----- ----- ------ -------- ---- ----------
Rust 6,018 528,510 66,984 133,698 327,792 3,163 (0.96%)
C 54 9,962 1,445 1,492 7,025 7,025 (100.00%)
CSS 4 1,266 149 52 1,065
JavaScript 4 1,118 131 166 821
Python 31 4,797 843 585 3,369
C Header 13 1,865 284 585 996 996 (100.00%)
C++ 4 1,611 185 81 1,345 1,345 (100.00%)
-------- ----- ----- ------ -------- ---- ----------
Totals: 6,128 549,129 70,021 136,659 342,413 12,529 (3.66%)
使用 --separator ,
设置 ,
字符作为千位分隔符,并使用 --unsafe-statistics
查找并计算 unsafe
的行数。
安装
可以使用 cargo-count
来安装,命令为 cargo install
$ cargo install cargo-count
如果遇到关于 install
命令找不到的错误,可能需要安装 cargo
的夜间版本。您也可以按照以下说明编译并按传统方式安装。
编译
按照以下说明编译 cargo-count
,然后跳转到安装部分。
- 请确保您已安装当前版本的
cargo
和 Rust - 克隆项目
$ git clone https://github.com/kbknapp/cargo-count && cd cargo-count
- 构建项目
$ cargo build --release
(注意:在不进行优化编译时,性能差异很大,因此我建议始终使用--release
以启用它们) - 完成后,二进制文件将位于
target/release/cargo-count
安装和使用
您只需将 cargo-count
放置在您的 $PATH
变量中的某个位置。然后在任何项目目录下运行 cargo count
。有关详细信息,请参阅以下内容。
Linux / OS X
您有两个选择,将 cargo-count
放入已位于您的 $PATH
变量中的目录(要查看这些目录,打开终端并输入 echo "${PATH//:/\n}"
,引号很重要),或者您可以将自定义目录添加到您的 $PATH
选项 1 如果您有对 $PATH
中列出的目录的写入权限,或者您有root权限(或通过 sudo
),只需将 cargo-count
复制到该目录 # sudo cp cargo-count /usr/local/bin
选项 2 如果您没有root权限、sudo
或对 $PATH
中任何目录的写入权限,您可以在您的家目录中创建一个目录,并将其添加。许多人使用 $HOME/.bin
来隐藏它(并且不会弄乱您的家目录),或者如果您想让它始终可见,可以使用 $HOME/bin
。以下是一个示例,创建目录,将其添加到 $PATH
,并将 cargo-count
复制到那里。
只需将 bin
更改为您想要的目录名,并将 .bashrc
更改为您的shell启动文件(通常是 .bashrc
、.bash_profile
或 .zshrc
)
$ mkdir ~/bin
$ echo "export PATH=$PATH:$HOME/bin" >> ~/.bashrc
$ cp cargo-count ~/bin
$ source ~/.bashrc
Windows
在Windows 7/8上,您可以通过以管理员身份打开命令行并运行来将目录添加到 PATH
变量
C:\> setx path "%path%;C:\path\to\cargo-count\binary"
否则,请确保您在命令行操作目录中有 cargo-count
二进制文件,因为Windows会自动将您的当前目录添加到PATH(例如,如果您打开命令行到 C:\my_project\
以使用 cargo-count
,请确保 cargo-count.exe
也在该目录中)。
选项
使用 cargo-count
有几种选项,应该比较直观。
USAGE:
cargo count [FLAGS] [OPTIONS] [--] [ARGS]
FLAGS:
-S, --follow-symlinks Follows symlinks and counts source files it finds
-a, --all Do not ignore .gitignored paths
(Defaults to false when omitted)
-h, --help Prints help information
--unsafe-statistics Displays lines and percentages of "unsafe" code
-V, --version Prints version information
-v, --verbose Print verbose output
OPTIONS:
-l, --language <exts>... Only count these languges (by source code extension)
(i.e. '-l js py cpp')
-e, --exclude <paths>... Files or directories to exclude (automatically includes '.git')
--utf8-rule <rule> Sets the UTF-8 parsing rule (Defaults to 'strict')
[values: ignore lossy strict]
-s, --separator <sep> Set the thousands separator for pretty printing
ARGS:
to_count... The files or directories (including children) to count
(defaults to current working directory when omitted)
When using '--exclude <path>' the path given can either be relative to the current
directory, or absolute. When '<path>' is a file, it must be relative to the current
directory or it will not be found. Example, if the current directory has a child
directory named 'target' with a child fild 'test.rs' and you use `--exclude target/test.rs'
Globs are also supported. For example, to exclude 'test.rs' files from all child directories
of the current directory you could do '--exclude */test.rs'.
许可证
cargo-count
在MIT许可证下发布。有关详细信息,请参阅LICENSE-MIT文件。
依赖关系树
依赖关系
~5MB
~106K SLoC