19 个版本 (5 个稳定版)

1.2.1 2023年7月1日
1.1.0 2022年3月31日
0.9.1 2022年3月28日

#567 in 开发工具

Download history • Rust 包仓库 1/week @ 2024-03-10 • Rust 包仓库 70/week @ 2024-03-31 • Rust 包仓库

每月下载量 55

MIT 许可证

75KB
1.5K SLoC

makeclean

Crates.io docs.rs

从代码项目中删除生成和下载的文件以释放空间。

功能

  • 列出、清理并存档根据您多久没有触摸它们的项目。
  • 尊重 .gitignore 文件,即使不在 Git 仓库中。构建工具通常在初始化新项目时创建 .gitignore 文件,因此确保即使在您尚未初始化 Git 仓库的情况下也不会遍历依赖项。
  • 支持 .ignore 文件,与 .gitignore 文件具有相同的语义,并由 ripgrep 和 The Silver Searcher 等搜索工具支持。
  • 忽略隐藏目录。

目前支持以下构建工具

  • Cargo
  • Elm
  • Flutter
  • Gradle (假设 $buildDir 设置为默认值 $projectDir/build! 查看 gradle.rs)
  • Mix
  • NPM

目录

安装

使用 Cargo 安装

cargo install makeclean

当前版本: 1.2.1

用法

运行 makeclean --help 以查看所有可用选项。

列出项目

使用 --list/-l 列出给定路径下所有“过时”的项目,即最近未更改的项目。

makeclean --list ~/projects

默认情况下,如果一个项目至少一个月没有变化,则被视为过时。您可以通过使用 --min-stale / -m 来更改此设置;例如,要考虑在过去两周内未修改的所有项目

makeclean --list --min-stale=2w ~/projects

--min-stale 设置为零可禁用检查

makeclean --list --min-stale=0 ~/projects

您还可以使用 --type / -t 通过构建工具进行过滤

makeclean --list --type npm ~/projects

清理项目

默认情况下,makeclean 会查找过去一个月未接触过的任何项目,并建议清理它们

makeclean ~/projects

使用 --dry-run / -n 来查看会发生什么,但实际上不会删除任何内容

makeclean --dry-run ~/projects

如果在脚本中运行 makeclean 并且不想出现提示,可以传递 --yes 以自动进行

makeclean --yes ~/projects

您也可以一次性指定多个目录。例如,要定期清理一些临时目录,可以将类似以下内容添加到 crontab 或启动脚本中

makeclean --min-stale=1w --yes \
  ~/code/rust-playground \
  ~/code/elm-playground \
  ~/code/flutter-playground

清理 + 存档项目

如果您还希望在清理项目后存档项目,请传递 --archive。例如,以下命令会在清理后用 ~/projects/foo.tar.xz 替换 ~/projects/foo 的内容

makeclean --archive ~/projects/foo

请注意,虽然 --archive 也考虑了已清理的项目,但它仍然尊重 --min-stale。如果 makeclean 没有找到您的项目,但您认为应该找到,请尝试使用环境变量 RUST_LOG 设置为 trace 再次尝试,例如,RUST_LOG=trace makeclean --archive ~/projects/foo。您应该会看到有关项目为何未被考虑的提示。如果日志没有告诉您发生了什么,请考虑 创建一个 GitHub 问题

要恢复项目,请使用 tar(可能已经安装到您的系统上)

cd ~/projects/foo
tar -xaf foo.tar.xz && rm foo.tar.xz

黑客技巧

欢迎提交 PR!查看 crates.io 上的文档 以开始。如果您有任何问题,请随时创建 GitHub 问题。

添加新构建工具的清单

  1. 将适用的项目类型添加到 src/build_tools.rs 中的 BuildToolKind 枚举。
  2. 将新模块添加到 src/build_tools.rs,在 src/build_tools/ 以下创建一个文件。
  3. src/build_tool_manager.rs 中将 register 调用添加到 BuildToolManager::default
  4. 将模块和初始化函数添加到 tests/util/tests/tests/build_tools.rs 中的 tools 数组。

许可证

MIT。任何贡献都被假定为 MIT 许可。

依赖关系

~24–37MB
~679K SLoC