cleard 1.0.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -0,0 +1,216 @@
1
+ Metadata-Version: 2.4
2
+ Name: cleard
3
+ Version: 1.0.0
4
+ Classifier: Development Status :: 4 - Beta
5
+ Classifier: Environment :: Console
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Rust
10
+ Classifier: Topic :: Utilities
11
+ Summary: Interactive, multi-ecosystem build-artifact disk reclaimer (npkill, but for everything)
12
+ Keywords: cli,tui,disk,cleanup,node_modules
13
+ Home-Page: https://github.com/ervan0707/cleard
14
+ Author-email: ervan <ervan@softwareseni.com>
15
+ License: MIT
16
+ Requires-Python: >=3.7
17
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
18
+ Project-URL: Bug Reports, https://github.com/ervan0707/cleard/issues
19
+ Project-URL: Documentation, https://github.com/ervan0707/cleard#readme
20
+ Project-URL: Homepage, https://github.com/ervan0707/cleard
21
+ Project-URL: Repository, https://github.com/ervan0707/cleard
22
+
23
+ # cleard
24
+
25
+ `npkill`, but for **everything** — an interactive terminal tool that finds
26
+ regenerable build / dependency / cache directories across many ecosystems and
27
+ lets you delete them to reclaim disk space.
28
+
29
+ It recursively scans a directory, streams matches into a live list sorted by
30
+ size, and deletes the ones you pick — with a running total of space reclaimed.
31
+
32
+ ## Why it's safe
33
+
34
+ Unlike a plain name match, `cleard` is **marker-aware**: an ambiguous directory
35
+ is only flagged when its project marker is a sibling. `target/` is only a
36
+ candidate when a `Cargo.toml` (or `pom.xml`) sits next to it; a hand-written
37
+ `build/` source folder with no build-system marker is left untouched.
38
+ Unambiguous names (`node_modules`, `__pycache__`, `.terraform`, …) need no marker.
39
+
40
+ Deletion is bounded to the scan root and always asks for confirmation.
41
+
42
+ ## Supported out of the box
43
+
44
+ Node (`node_modules`, `.next`, `.nuxt`, `.svelte-kit`, `.turbo`), Rust (`target`),
45
+ Java/Gradle/Maven (`build`, `.gradle`, `target`), Python (`.venv`, `venv`,
46
+ `__pycache__`, `.pytest_cache`, `.mypy_cache`, `.ruff_cache`, `*.egg-info`),
47
+ Go & PHP (`vendor`), .NET (`bin`, `obj`), CocoaPods (`Pods`), Terraform
48
+ (`.terraform`), Elixir (`_build`, `deps`), Elm (`elm-stuff`), Dart/Flutter
49
+ (`.dart_tool`). Extendable via config.
50
+
51
+ ## Install
52
+
53
+ `cleard` ships one binary through whichever ecosystem you already use — npm,
54
+ PyPI, and the `curl` script all deliver the same prebuilt binary; Cargo and Nix
55
+ build from source.
56
+
57
+ ```sh
58
+ cargo install cleard # crates.io (compiles from source)
59
+ npm install -g cleard # prebuilt binary via npm
60
+ pip install cleard # prebuilt binary in a Python wheel
61
+ curl -fsSL https://raw.githubusercontent.com/ervan0707/cleard/main/install.sh | bash
62
+ nix profile install github:ervan0707/cleard
63
+ ```
64
+
65
+ ## Run
66
+
67
+ With Nix flakes, run it straight from GitHub (nothing to clone, no Rust needed):
68
+
69
+ ```sh
70
+ # run once against a directory
71
+ nix run github:ervan0707/cleard -- ~/code
72
+
73
+ # run the current directory
74
+ nix run github:ervan0707/cleard
75
+
76
+ # pin a tag/branch/commit
77
+ nix run github:ervan0707/cleard/v0.1.0 -- ~/code
78
+ ```
79
+
80
+ Install it into your profile:
81
+
82
+ ```sh
83
+ nix profile install github:ervan0707/cleard
84
+ cleard ~/code
85
+ ```
86
+
87
+ ### Binary cache (skip the build)
88
+
89
+ CI publishes prebuilt outputs to [Cachix](https://www.cachix.org), so you can
90
+ download the binary instead of compiling Rust. The flake advertises the cache
91
+ via `nixConfig`, which Nix uses automatically if you're a trusted user.
92
+ Otherwise, opt in once:
93
+
94
+ ```sh
95
+ cachix use skinnyvans
96
+ ```
97
+
98
+ Or add it to your Nix config by hand:
99
+
100
+ ```
101
+ substituters = https://skinnyvans.cachix.org
102
+ trusted-public-keys = skinnyvans.cachix.org-1:sgaZPgRhzsU4YScjc2U5Imc+4E3y9Ov/G/q8p/csX+o=
103
+ ```
104
+
105
+ Or add it to your own flake:
106
+
107
+ ```nix
108
+ {
109
+ inputs.cleard.url = "github:ervan0707/cleard";
110
+ # then use cleard.packages.${system}.default in your outputs
111
+ }
112
+ ```
113
+
114
+ Don't have Nix? Build from source with Cargo:
115
+
116
+ ```sh
117
+ git clone https://github.com/ervan0707/cleard
118
+ cd cleard
119
+ cargo build --release # binary at ./target/release/cleard
120
+ ```
121
+
122
+ ## Usage
123
+
124
+ ```sh
125
+ cleard # scan the current directory
126
+ cleard ~/code # scan a specific directory
127
+ cleard --dry-run # show what would be reclaimed, delete nothing
128
+ cleard --min-size 100M # hide candidates smaller than 100 MiB
129
+ cleard -x .git -x dist # skip directories by name
130
+ ```
131
+
132
+ ### Keys
133
+
134
+ | Key | Action |
135
+ | --- | --- |
136
+ | `↑`/`k`, `↓`/`j` | move cursor |
137
+ | `g` / `G` | top / bottom |
138
+ | `space` | toggle selection |
139
+ | `a` / `c` | select all / clear selection |
140
+ | `d` / `Del` | delete selected (or focused) |
141
+ | `Enter` | delete focused |
142
+ | `s` | cycle sort (size / age / path) |
143
+ | `/` | filter by path or ecosystem |
144
+ | `?` | help |
145
+ | `q` | quit |
146
+
147
+ ## Config
148
+
149
+ Optional, at `~/.config/cleard/config.toml` (or pass `--config <path>`). Use it to
150
+ add your own detection rules, or to replace the built-in catalog entirely. If the
151
+ file doesn't exist, the built-in rules are used.
152
+
153
+ Each rule has:
154
+
155
+ - `ecosystem` — the label shown in the list.
156
+ - `dir_names` — directory names to match.
157
+ - `markers` — sibling files that must exist for a match. With markers, the dir is
158
+ only flagged when one sits next to it (so a hand-written `zig-out/` with no
159
+ `build.zig` is left alone). Omit `markers` to match the name anywhere ("safe by
160
+ name") — only do that for unambiguous names.
161
+
162
+ `dir_names` and `markers` accept a single `*` glob (e.g. `*.csproj`, `*.egg-info`).
163
+ Your rules are checked before the built-ins, so they win on overlapping names.
164
+
165
+ Add a few ecosystems on top of the built-ins:
166
+
167
+ ```toml
168
+ # use_default_rules = true # default; keep the built-in catalog
169
+
170
+ [[rules]]
171
+ ecosystem = "Zig"
172
+ dir_names = ["zig-cache", "zig-out"]
173
+ markers = ["build.zig"]
174
+
175
+ [[rules]]
176
+ ecosystem = "Bazel"
177
+ dir_names = ["bazel-bin", "bazel-out", "bazel-testlogs"]
178
+ markers = ["WORKSPACE", "WORKSPACE.bazel", "MODULE.bazel"]
179
+
180
+ [[rules]]
181
+ ecosystem = "CMake"
182
+ dir_names = ["CMakeFiles"] # unambiguous name, no marker needed
183
+ ```
184
+
185
+ Or replace the built-ins entirely and clean only what you list:
186
+
187
+ ```toml
188
+ use_default_rules = false
189
+
190
+ [[rules]]
191
+ ecosystem = "Node"
192
+ dir_names = ["node_modules"]
193
+
194
+ [[rules]]
195
+ ecosystem = "Rust"
196
+ dir_names = ["target"]
197
+ markers = ["Cargo.toml"]
198
+ ```
199
+
200
+ ## Develop (Nix)
201
+
202
+ ```sh
203
+ nix develop # dev shell with the pinned Rust toolchain + rust-analyzer
204
+ cargo run -- ./path
205
+ cargo test
206
+
207
+ nix build # build the release binary -> ./result/bin/cleard
208
+ nix run . -- ~/code # build and run
209
+ ```
210
+
211
+ (With `direnv`, `direnv allow` loads the dev shell automatically.)
212
+
213
+ ## License
214
+
215
+ MIT
216
+
@@ -0,0 +1,5 @@
1
+ cleard-1.0.0.data/scripts/cleard.exe,sha256=-nyOWdi9jzrSvKqRKPtBCBJM1XlKoUvUNXpBXd4C5Rk,1801216
2
+ cleard-1.0.0.dist-info/METADATA,sha256=y2OvXy0y79xCw8np4e3i4wzQYqVYPgWUr8nyQCRFFHc,6738
3
+ cleard-1.0.0.dist-info/WHEEL,sha256=2zDlIYIdD4m4N3p5DVEG3iJhGLdhsBQgdH-FqVkAur8,94
4
+ cleard-1.0.0.dist-info/sboms/cleard.cyclonedx.json,sha256=bejkOtcNDqrUeBf-nvXz39U0rjcJ9RLZqfR6EH2Ik3Y,210983
5
+ cleard-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.14.1)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64