Crates.io | makeclean |
lib.rs | makeclean |
version | 1.3.0 |
source | src |
created_at | 2022-03-01 10:44:57.992997 |
updated_at | 2024-09-09 15:37:12.27108 |
description | Clean up projects you're no longer working on. |
homepage | https://github.com/kevinbader/makeclean |
repository | https://github.com/kevinbader/makeclean |
max_upload_size | |
id | 541475 |
size | 144,066 |
makeclean
Removes generated and downloaded files from code projects to free up space.
Features:
.gitignore
files even outside Git repositories. Build tools often create a .gitignore
file when initializing a new project, so this makes sure that the dependencies are not traversed even in case you have not initialized the Git repository yet..ignore
files, which have the same semantics as .gitignore
files and are supported by search tools such as ripgrep and The Silver Searcher.Currently supports the following build tools:
$buildDir
is set to the default value $projectDir/build
! See gradle.rs
)Table of contents:
Install using Cargo:
cargo install makeclean
Current release: 1.3.0
Run makeclean --help
to see all available options.
List all projects that are "stale", that is, have not been changed recently, under a given path, using --list
/-l
:
makeclean --list ~/projects
By default, a project is considered stale if there weren't any changed for at least a month. You can change this by using --min-stale
/-m
; for example, to consider all projects that have not been modified within the last 2 weeks:
makeclean --list --min-stale=2w ~/projects
Set --min-stale
to zero to disable the check:
makeclean --list --min-stale=0 ~/projects
You can also filter by build tool using --type
/-t
:
makeclean --list --type npm ~/projects
By default, makeclean
looks for any projects that haven't been touched for a month, and offers to clean them:
makeclean ~/projects
Use --dry-run
/-n
to see what would happen, without actually deleting anything:
makeclean --dry-run ~/projects
If you run makeclean
in a script and don't want the prompt, you can pass --yes
to proceed automatically:
makeclean --yes ~/projects
You can also specify multiple directories at once. For example, to regularly clean up some scratch directories, you could add something like this to crontab or a startup script:
makeclean --min-stale=1w --yes \
~/code/rust-playground \
~/code/elm-playground \
~/code/flutter-playground
If you also want to archive the projects after cleaning them up, pass --archive
. For example, the following command would replace the contents of ~/projects/foo
with ~/projects/foo.tar.xz
, after cleaning it:
makeclean --archive ~/projects/foo
Note that while
--archive
also considers cleaned projects, it still respects--min-stale
. If makeclean doesn't find your project but you think it should, try again with the environment variableRUST_LOG
set totrace
, e.g.,RUST_LOG=trace makeclean --archive ~/projects/foo
. You should see a hint as to why the project was not considered. If the logs don't tell you what's going on, please consider creating a GitHub issue.
To restore the project, use tar
(which is probably already installed on your system):
cd ~/projects/foo
tar -xaf foo.tar.xz && rm foo.tar.xz
PRs welcome! Check out the documentation on crates.io to get started. Feel free to create a GitHub issue if you have any questions.
BuildToolKind
enum in src/build_tools.rs
.src/build_tools.rs
, creating a file below src/build_tools/
.register
call to BuildToolManager::default
in src/build_tool_manager.rs
.tests/util/
and to the tools
array at tests/tests/build_tools.rs
.MIT. Any contributions are assumed MIT-licensed as well.