Find and clean heavy build or cache directories.

Overview

ProjClean

CI Crates

Find and clean heavy build or cache directories.

ProjClean finds directories such as node_modules(node), target(rust), build(java) and their storage space for you, so you can easily inspect or clean.

screenshot

Install

With cargo

cargo install projclean

Binaries on macOS, Linux, Windows

Download from Github Releases, unzip and add projclean to your $PATH.

Usage

  • Starting search from current directory
projclean
  • Starting search from $HOME directory
projclean $HOME
  • Print default rules
projclean -L
node_modules;;node
target;Cargo.toml;rust
build;build.gradle;java
^(Debug|Release)$;\.sln$;vs
  • Use custom rules

Search tmp folder

projclean -r tmp

Search build or dist folder belongs to js project

projclean -r '^(build|dist)$;package.json;js'
# or
projclean -r 'build;package.json;js' -r 'dist;packge.json;js'
  • Load custom rules from file

You can write the rules to a file for reuse.

projclean -L > rules
echo 'build;pom.xml;java' >> rules
projclean -f rules
  • List found targets only, do not enter tui
projclean -t
projclean -t | xargs rm -rf

Rule

ProjClean finds target folders according to project rule.

Each project rule consist of:

<target>[;flag][;name]
  • target: folders to be searched, e.g. node_modules, ^(build|dist)$
  • flag: specific file to a specific project, e.g. Cargo.toml to rust, build.gradle to java or \.sln$ to vs.
  • name: rule/project name.

The flag is used to filter out target folders that are not in the project.

License

Copyright (c) 2022 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.

Comments
  • build(deps): bump regex from 1.5.6 to 1.6.0

    build(deps): bump regex from 1.5.6 to 1.6.0

    Bumps regex from 1.5.6 to 1.6.0.

    Changelog

    Sourced from regex's changelog.

    1.6.0 (2022-07-05)

    This release principally includes an upgrade to Unicode 14.

    New features:

    Bug fixes:

    Commits
    • fc9ee6a 1.6.0
    • 8ddc8ec deps: bump regex-syntax to 0.6.27
    • 8c0eccd regex-syntax-0.6.27
    • dee5c25 changelog: 1.6.0
    • 9ca3099 regex: fix clippy lints up to rust 1.41.1
    • de83828 syntax: fix clippy lints up to rust 1.41.1
    • b87cd88 syntax: include only the start of the character class on error
    • 9d1478c doc: fix typos
    • 7d21662 doc: clarify Captures::len includes non-matching captures
    • 5e98788 perf: use is_match_at instead of shortest_match_at
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump anyhow from 1.0.58 to 1.0.59

    build(deps): bump anyhow from 1.0.58 to 1.0.59

    Bumps anyhow from 1.0.58 to 1.0.59.

    Release notes

    Sourced from anyhow's releases.

    1.0.59

    • Update crates.io metadata to include no-std category
    Commits
    • fb9fb18 Release 1.0.59
    • f58e803 Add no-std category to crates.io metadata
    • 8f268ac Sort package entries in Cargo.toml
    • c0e7854 Ignore assertions_on_result_states clippy lint
    • b594668 Update ui test suite to nightly-2022-07-28
    • 13e7a90 Revert "Disable backtrace test on miri"
    • 8d25d6b Disable backtrace test on miri
    • ffb25df Update ui test suite to nightly-2022-07-20
    • 38c883b Ignore explicit_auto_deref clippy lint
    • 9054599 Update ui test suite to nightly-2022-07-02
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump crossterm from 0.23.2 to 0.24.0

    build(deps): bump crossterm from 0.23.2 to 0.24.0

    Bumps crossterm from 0.23.2 to 0.24.0.

    Release notes

    Sourced from crossterm's releases.

    0.24

    • Add DoubleUnderlined, Undercurled, Underdots the text, Underdotted, Underdashes, Underdashed attributes and allow coloring their foreground/background color.
    • Fix windows unicode character parsing, this fixed various key combinations and support typing unicode characters.
    • Consistency and better documentation on mouse cursor operations (BREAKING CHANGE).
      • MoveTo, MoveToColumn, MoveToRow are 0-based. (left top most cell is 0,0). Moving like this is absolute
      • MoveToNextLine, MoveToPreviousLine, MoveUp, MoveDown, MoveRight, MoveLeft are 1-based,. Moving like this is relative. Moving 1 left means moving 1 left. Moving 0 to the left is not possible, wikipedia states that most terminals will just default to 1.
    • terminal::size returns error when previously it returned (0,0).
    • Remove println from serialization code.
    • Fix the mouse up for the middle and right buttons.
    • Fix escape codes on Git-Bash + Windows Terminal / Alacritty / WezTerm.
    • Add support for cursor keys in application mode.
    Changelog

    Sourced from crossterm's changelog.

    Version 0.24.0

    • Add DoubleUnderlined, Undercurled, Underdots the text, Underdotted, Underdashes, Underdashed attributes and allow coloring their foreground / background color.
    • Fix windows unicode character parsing, this fixed various key combinations and support typing unicode characters.
    • Consistency and better documentation on mouse cursor operations (BREAKING CHANGE).
      • MoveTo, MoveToColumn, MoveToRow are 0-based. (left top most cell is 0,0). Moving like this is absolute
      • MoveToNextLine, MoveToPreviousLine, MoveUp, MoveDown, MoveRight, MoveLeft are 1-based,. Moving like this is relative. Moving 1 left means moving 1 left. Moving 0 to the left is not possible, wikipedia states that most terminals will just default to 1.
    • terminal::size returns error when previously it returned (0,0).
    • Remove println from serialisation code.
    • Fix mouse up for middle and right buttons.
    • Fix escape codes on Git-Bash + Windows Terminal / Alacritty / WezTerm.
    • Add support for cursor keys in application mode.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump crossbeam-utils from 0.8.10 to 0.8.11

    build(deps): bump crossbeam-utils from 0.8.10 to 0.8.11

    Bumps crossbeam-utils from 0.8.10 to 0.8.11.

    Release notes

    Sourced from crossbeam-utils's releases.

    crossbeam-utils 0.8.11

    • Bump the minimum supported Rust version to 1.38. (#877)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump clap from 3.2.8 to 3.2.16

    build(deps): bump clap from 3.2.8 to 3.2.16

    Bumps clap from 3.2.8 to 3.2.16.

    Release notes

    Sourced from clap's releases.

    v3.2.16

    [3.2.16] - 2022-07-30

    Fixes

    • Ensure required arguments appear in errors when they are also members of a group (#4004)

    v3.2.15

    [3.2.15] - 2022-07-25

    Features

    • (derive) New default_values_t and default_values_os_t attributes

    v3.2.14

    [3.2.14] - 2022-07-21

    Fixes

    • A multple_values positional followed by another positional now works with multiple flags

    v3.2.13

    [3.2.13] - 2022-07-19

    Documentation

    • Pulled in tutorials, cookbook, and derive reference into rustdoc

    v3.2.12

    [3.2.12] - 2022-07-14

    Fixes

    • Allow an arg to declare a conflict with a group

    v3.2.11

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases

    v3.2.10

    [3.2.10] - 2022-07-12

    Fixes

    • Loosen lifetime on Command::mut_subcommand
    Changelog

    Sourced from clap's changelog.

    [3.2.16] - 2022-07-30

    Fixes

    • Ensure required arguments appear in errors when they are also members of a group (#4004)

    [3.2.15] - 2022-07-25

    Features

    • (derive) New default_values_t and default_values_os_t attributes

    [3.2.14] - 2022-07-21

    Fixes

    • A multple_values positional followed by another positional now works with multiple flags

    [3.2.13] - 2022-07-19

    Documentation

    • Pulled in tutorials, cookbook, and derive reference into rustdoc

    [3.2.12] - 2022-07-14

    Fixes

    • Allow an arg to declare a conflict with a group

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases

    [3.2.10] - 2022-07-12

    Fixes

    • Loosen lifetime on Command::mut_subcommand
    Commits
    • 9bd1e2f chore: Release
    • 5e52594 docs: Update changelog
    • 80ea08c Merge pull request #4006 from epage/error
    • 4c43b21 fix(parser): Include required argument in message
    • ef1424b refactor(usage): Clarify required gathering
    • b2a8fd7 chore: Release
    • 026e858 chore: Allow releasing from release branches
    • 84ae6df docs: Update changelog
    • 69b0904 Merge pull request #3987 from emersonford/default-values-t-v3-backport
    • 027a675 feat(clap_derive): Add default_values_t and default_values_os_t
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump clap from 3.2.6 to 3.2.8

    build(deps): bump clap from 3.2.6 to 3.2.8

    Bumps clap from 3.2.6 to 3.2.8.

    Release notes

    Sourced from clap's releases.

    v3.2.8

    [3.2.8] - 2022-06-30

    Features

    • Added Command::mut_subcommand to mirror Command::mut_arg
    Changelog

    Sourced from clap's changelog.

    [3.2.8] - 2022-06-30

    Features

    • Added Command::mut_subcommand to mirror Command::mut_arg

    [3.2.7] - 2022-06-28

    Fixes

    • Global arguments should override env-sourced arguments
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • refactor: redesign cli

    refactor: redesign cli

    in old version, add search rules with option -r, set entrypoint directory with positional arg in new version, add search rules with positional args, set entrypoint directory with option -C

    BREAKING CHANGE: redsign cli

    opened by sigoden 0
  • feat: update cli

    feat: update cli

    projclean 0.1.1
    sigoden <[email protected]>
    Project Cleaner - https://github.com/sigoden/projclean
    
    USAGE:
        projclean [OPTIONS] [--] [PATH]
    
    ARGS:
        <PATH>    Start searching from
    
    OPTIONS:
        -f, --file <FILE>       Load rules from <FILE>
        -h, --help              Print help information
        -L, --list-rules        List current rules
        -r, --rule <RULE>...    Add a search rule
        -t, --list-targets      List found targets
        -V, --version           Print version information
    
    opened by sigoden 0
Releases(v0.5.0)
Owner
null
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

M4jrT0m 1 Dec 24, 2021
fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find

fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.

David Peter 25.9k Jan 9, 2023
Help Skelly to find bones, combine them to build his body back

Bones Collector Help Skelly to find bones, combine them to build his body back! Game made for the bevy Jam#2. Play it here in your browser: itch.io! R

Thomas 2 Nov 15, 2022
Desktop app for reading and downloading manga. With clean distraction-free design and no clutter

Tonbun Tonbun is a desktop app for reading and downloading manga. With clean distraction-free design and no clutter. Build with Rust, Tauri, Vue.js, a

null 23 Nov 30, 2022
Voila is a domain-specific language launched through CLI tool for operating with files and directories in massive amounts in a fast & reliable way.

Voila is a domain-specific language designed for doing complex operations to folders & files. It is based on a CLI tool, although you can write your V

Guillem Jara 86 Dec 12, 2022
RnR is a command-line tool to securely rename multiple files and directories that supports regular expressions

RnR is a command-line tool to securely rename multiple files and directories that supports regular expressions. Features Batch rename files and direct

Ismael González Valverde 219 Dec 31, 2022
Temporary files and directories with UTF-8 paths.

camino-tempfile A secure, cross-platform, temporary file library for Rust with UTF-8 paths. This crate is a wrapper around tempfile that works with th

null 4 Apr 24, 2023
Unwrap Macros to help Clean up code and improve production.

unwrap_helpers Unwrap Macros to help Clean up code and improve production. This does include a pub use of https://github.com/Mrp1Dev/loop_unwrap to ga

Ascending Creations 2 Nov 1, 2021
Easy, Simple, Clean. Making status bars reliable and up-to-date.

Simple Status Easy, Simple, Clean. Making status bars reliable and up-to-date. Installation Compiling simple_status yourself doesn't require much. Ins

James Butcher 5 Aug 1, 2022
A cli tool to download specific GitHub directories or files

cloneit A cli tool to download specific GitHub directories or files. Installation From git git clone https://github.com/alok8bb/cloneit cd cloneit car

Alok 54 Dec 20, 2022
Tool for managing dotfiles directories; Heavily based on rcm.

Paro paro : to prepare, get ready / set, put / furnish, supply. Tool for managing dotfiles directories; Heavily based on rcm. TODO Rust Boilerplate CI

Rafael Delboni 7 Nov 20, 2022
Semi-persistent, scoped test directories

Semi-persistent, scoped test directories This crate aims to make it easier to use temporary directories in tests, primarily by calling the testdir!()

Floris Bruynooghe 4 Nov 19, 2022
Wraps cargo to move target directories to a central location [super experimental]

targo Wraps cargo to move target directories to a central location [super experimental] To use, cargo install --git https://github.com/sunshowers/targ

Rain 18 Jan 7, 2023
Bookmark directories for easy directory-hopping in the terminal

markd Bookmark directories for easy directory-hopping in the terminal. All it takes is one command markd to bookmark your current directory, or use th

Maaz Ahmed 10 Jul 10, 2023
Utility to display a tree view of directories.

TreeCraft v0.2.3 (16 October 2023) TreeCraft is a command-line utility written in pure Rust that helps you visualize directory structures in ASCII for

Akmal 4 Oct 14, 2023
Remove files or directories.

Wrm - Remove files or directories Installation Run the following Cargo command: cargo install wrm Usage To move files to trash($HOME/.local/share/wrm

null 41 Mar 4, 2024
Learning Rust through Advent of Code 2021 - probably not very clean!

AoC 2021 ======== I'm using AoC2021 as an excuse to learn Rust (and maybe some other languages). Please do *not* use this repository as a good source

Andrew Zhu 0 Dec 8, 2021
Fls - Ferris-LS, a very bad LS replacement. Besides that, proves that I suck at clean & good code.

FLS A handy ls remake, purely for learning. Why FLS? There's no reason, at all, don't use it. I just want to learn Rust :D Usage Flags: -i = Use icons

florida 6 Jan 24, 2022
A simple tool to clean all projects in a directory.

Cargo Cleanall A simple tool to clean all cargo projects in a directory. Help Cargo plugin to clean all cargo projects in a directory Usage: cargo cl

null 11 Jan 24, 2023