#cargo #cache #clean #remove #manage #config-directory #cargo-command

app cargo-trim

用于清理 $CARGO_HOME 缓存的二进制应用程序

30 个版本

0.12.3 2024年3月17日
0.12.1 2024年1月28日
0.12.0 2023年8月13日
0.11.1 2023年6月2日
0.1.1 2019年3月17日

#68命令行工具

MIT 许可证

135KB
3.5K SLoC

CARGO-TRIM

项目状态 & 信息

许可证 Crates 版本
License: MIT Crate

用于清理 $CARGO_HOME/registry & $CARGO_HOME/git 文件夹的二进制应用程序,支持清理孤立和旧版本包。默认的 $CARGO_HOME 设置为 $HOME/.cargo

安装

安装 cargo-trim:您可以从 crates.io 注册表中安装

cargo install cargo-trim

或者

对于最新的开发版本

cargo install --git https://github.com/iamsauravsharma/cargo-trim

设置

最初您需要为一些命令设置 cargo-trim,例如孤立清理以正常工作。要为所有与 Rust 语言相关的项目设置 cargo-trim 以正常工作,请转到所有项目所在的目录,并运行 cargo trim init。您甚至可以多次运行此命令以添加多个目录。或者运行命令 cargo trim set -d <directory-path>。目录内的所有项目都将用于列出孤立包。因此,如果其他目录中有项目,则如果它们未被添加目录中的其他包使用,则它们的依赖项将被分类为孤立包。

命令输出

所有 cargo-trim 命令都可以使用 cargo trim <command> 运行。运行 cargo trim --help 将生成以下输出,列出 cargo-trim 的所有可用命令

Binary application to cleanup $CARGO_HOME cache

Usage: cargo-trim [OPTIONS] [COMMAND]

Commands:
  init      Initialize current working directory as cargo trim directory
  clear     Clear current working directory from cargo cache config
  config    Query about config file data used by CLI
  set       Set config file values
  unset     Unset values from config file
  list      List crates
  git       Perform operation only to git related cache file
  registry  Perform operation only to registry related cache file
  help      Print this message or the help of the given subcommand(s)

Options:
  -a, --all                    Clean up all registry & git crates
      --clear-empty-index      Clear all empty index directory
  -d, --directory <DIRECTORY>  Extra list of directory of Rust projects for current command [env: TRIM_DIRECTORY=]
  -n, --dry-run                Run command in dry run mode to see what would be done
  -g, --gc <GIT_COMPRESS>      Git compress to reduce size of .cargo (git command required) [possible values: aggressive-checkout, aggressive-db, aggressive-index, checkout, db, index]
  -i, --ignore <IGNORE>        Extra list of ignore file name which should be ignored for current command [env: TRIM_IGNORE=]
  -l, --light                  Light cleanup without removing files required for future compilation without internet
      --no-scan-hidden-folder  Do not scan hidden folder for current command. Takes precedence over scan-hidden-folder [env: TRIM_NOT_SCAN_HIDDEN_FOLDER=]
      --no-scan-target-folder  Do not scan target folder for current command. Takes precedence over scan-target-folder [env: TRIM_NOT_SCAN_TARGET_FOLDER=]
  -o, --old                    Clean old cache crates
  -z, --old-orphan             Clean crates which are both old and orphan
  -x, --orphan                 Clean orphan cache crates i.e all crates which are not present in lock file generated till now
  -q, --query                  Return size of different .cargo/cache folders
      --scan-hidden-folder     Scan hidden folder for current command [env: TRIM_SCAN_HIDDEN_FOLDER=]
      --scan-target-folder     Scan target folder for current command [env: TRIM_SCAN_TARGET_FOLDER=]
  -t, --top <TOP>              Show certain number of top crates which have highest size
  -u, --update                 Update Cargo.lock file present inside config directory folder path
  -w, --wipe <WIPE>            Wipe folder [possible values: git, checkouts, db, registry, cache, index, index-cache, src]
  -h, --help                   Print help
  -V, --version                Print version

配置

货物修剪程序将其配置文件存储在操作系统的配置目录中,并将配置文件命名为 cargo_trim_config.toml。在文件中,货物修剪程序存储了扫描项目和列出crate的不同信息。要列出货物修剪程序存储配置文件的位置,可以使用以下命令:cargo trim config --location 下面列出了配置及其默认值以及相应的环境变量,可以在不编辑配置文件的情况下设置相同的值。

1. 目录

默认值:[]

环境变量:TRIM_DIRECTORY

要扫描的Rust项目的目录列表

2. 忽略文件名

默认值:[]

环境变量:TRIM_IGNORE

在扫描目录时应该忽略的文件/目录名。这可以用来排除某些文件夹,例如npm的node_modules文件夹或python的venv文件夹,如果配置中包含此类文件夹,将有助于显著提高性能。

3. 扫描隐藏文件夹

默认值:false

环境变量:TRIM_SCAN_HIDDEN_FOLDER

是否扫描隐藏文件夹(即以点表示法开头的文件夹)

4. 扫描目标文件夹

默认值:false

环境变量:TRIM_SCAN_TARGET_FOLDER

是否扫描目标文件夹。目前,它搜索环境变量 CARGO_BUILD_TARGET_DIRCARGO_TARGET_DIR 或将默认值作为目标以确定目标文件夹名称

依赖

~3–4.5MB
~110K SLoC