An open API service indexing awesome lists of open source software.

https://github.com/sigoden/projclean

Project dependencies & build artifacts cleanup tool.
https://github.com/sigoden/projclean

cleaner cli command-line rust tui

Last synced: 6 months ago
JSON representation

Project dependencies & build artifacts cleanup tool.

Awesome Lists containing this project

README

          

# Projclean

[![CI](https://github.com/sigoden/projclean/actions/workflows/ci.yaml/badge.svg)](https://github.com/sigoden/projclean/actions/workflows/ci.yaml)
[![Crates](https://img.shields.io/crates/v/projclean.svg)](https://crates.io/crates/projclean)

Project dependencies & build artifacts cleanup tool.

![screenshot](https://github.com/sigoden/projclean/assets/4012553/82c28551-6d68-4e56-8565-f7aee1987723)

## Install

### With cargo

```
cargo install projclean
```

### Binaries on macOS, Linux, Windows

Download from [Github Releases](https://github.com/sigoden/projclean/releases), unzip and add projclean to your $PATH.

## CLI

```
Usage: projclean [OPTIONS] [RULES]...

Arguments:
[RULES]... Search rules, e.g. node_modules target@Cargo.toml

Options:
-C, --cwd Start searching from [default: .]
-x, --exclude Exclude directories from search, e.g. ignore1,ignore2
-t, --time <[+|-]DAY> Path was last modified less than, more than or exactly days
-s, --size <[+|-]SIZE> Path uses less than, more than or exactly units (K|M|G|T) of space
-D, --delete-all Automatically delete all found targets
-P, --print Print the found targets
-h, --help Print help
-V, --version Print version
```

Clean up node_modules.

```sh
projclean node_modules
```

Clean up various types of projects.

```sh
projclean node_modules target@Cargo.toml
```

Start searching from a specific directory with `-C` or `--cwd`

```sh
projclean -C $HOME node_modules # equal to `cd $HOME && projclean node_modules`
```

Find node_modules with the latest updates over 30 days and occupy more than 1G disk space.
```sh
projclean node_modules --time +30 --size +1G
```

## Search Rule

Projclean find targets according search rule.

Rule consist of two parts:

```
[@detect[,detect...]]
```

| project | rule |
| :------- | :-------------------------------------------- |
| nodejs | `node_modules` |
| cargo | `target@Cargo.toml` |
| maven | `target@pom.xml` |
| gradle | `.gradle,build@build.gradle,build.gradle.kts` |
| cmake | `build@CMakeLists.txt` |
| composer | `vendor@composer.json` |
| dotnet | `bin,obj@*.csproj,*.fsproj` |
| vs | `.vs,Debug,Release@*.sln` |
| vc++ | `Debug,Release@*.vcxproj` |
| swift | `.build,.swiftpm@Package.swift` |
| pod | `Pods@Podfile` |
| pub | `.dart_tool,build@pubspec.yaml` |
| sbt | `target,project/target@build.sbt` |
| jupyter | `.ipynb_checkpoints@*.ipynb` |
| zig | `zig-cache,zig-out@build.zig` |
| rebar | `_build@rebar.config` |
| dune | `_build@dune-project` |
| mix | `_build@mix.exs` |
| stack | `.stack-work@stack.yaml` |
| godot | `.godot@project.godot` |

## License

Copyright (c) 2022-2024 projclean-developers.

argc is made available under the terms of either the MIT License or the Apache License 2.0, at your option.

See the LICENSE-APACHE and LICENSE-MIT files for license details.