Skip to content

Commit

Permalink
Readme update (#78)
Browse files Browse the repository at this point in the history
* vid in readme

* better pics and vids

* project list top

* Update README.md

* Update README.md

* readme touchup

* readme touchup
  • Loading branch information
tbillington authored Mar 5, 2023
1 parent 328e330 commit a7af954
Showing 1 changed file with 92 additions and 54 deletions.
146 changes: 92 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,103 +1,141 @@
# Kondo 🧹

![Kondo Lints](https://github.com/tbillington/kondo/workflows/Kondo%20Lints/badge.svg)
Cleans `node_modules`, `target`, `build`, etc from your projects.

Cleans unneeded directories and files from your system.
Excellent if

![kondo gui](https://user-images.githubusercontent.com/2771466/76697113-f52b7a80-66e6-11ea-8ea1-4e1b6eb3f798.png)
- 💾 You want to back up your code but don't want to include GBs of dependencies
- 🧑‍🎨 You try out lots of projects but hate how much space they occupy
- ⚡️ You like keeping your disks lean and zippy

![kondo command line](https://user-images.githubusercontent.com/2771466/89015432-5c765e00-d35a-11ea-8e67-193f2688d660.png)
<br />

It will identify the disk space savings you would get from deleting temporary/unnecessary files from project directories, such as `target` from Cargo projects and `node_modules` from Node projects.
<p align="center">
<strong>14 Supported Project Types</strong>
</p>
<p align="center">
<a href="https://doc.rust-lang.org/cargo/">Cargo</a>
- <a href="https://nodejs.org/">Node</a>
- <a href="https://unity.com/">Unity</a>
- <a href="https://www.scala-sbt.org/">Scala SBT</a>
- <a href="https://docs.haskellstack.org/">Haskell Stack</a>
- <a href="https://maven.apache.org/">Maven</a>
- <a href="https://www.unrealengine.com/">Unreal Engine</a>
- <a href="https://www.python.org/">Python</a>
</p>
<p align="center">
<a href="https://jupyter.org/">Jupyter Notebook</a>
- <a href="https://cmake.org">CMake</a>
- <a href="https://getcomposer.org/">Composer</a>
- <a href="https://dart.dev/">Pub</a>
- <a href="https://elixir-lang.org/">Elixir</a>
- <a href="https://swift.org/">Swift</a>
</p>
<p align="center">
Pull requests are welcome, it's <a href="https://github.com/tbillington/kondo/pull/76/files">easy to extend</a>!
</p>

## Supports:
<img width="972" alt="kondo cli cleaning projects" src="https://user-images.githubusercontent.com/2771466/222950622-475bc6cc-7b91-47c2-86b2-5948bee4fe8e.png">

- [Cargo](https://doc.rust-lang.org/cargo/) projects (Rust)
- [Node](https://nodejs.org/) projects (JavaScript)
- [Unity](https://unity.com/) projects (C#)
- [SBT](https://www.scala-sbt.org/) projects (Scala)
- [Haskell Stack](https://docs.haskellstack.org/) projects (Haskell)
- [Maven](https://maven.apache.org/) projects (Java)
- [Unreal Engine](https://www.unrealengine.com/) projects (C++)
- [Jupyter Notebook](https://jupyter.org/) projects (Python)
- [Python](https://www.python.org/) projects
- [CMake](https://cmake.org) projects
- [Composer](https://getcomposer.org/) projects (PHP)
- [Pub](https://dart.dev/) projects (Dart)
- [Elixir](https://elixir-lang.org/) projects
- [Swift](https://swift.org/) projects
<img width="1112" alt="kondo gui displaying projects" src="https://user-images.githubusercontent.com/2771466/222950846-964162a1-80c9-4cdf-a9a8-d818ba4cb34a.png">

<details>
<summary>CLI Video</summary>

[kondo-cli.webm](https://user-images.githubusercontent.com/2771466/222949617-0ed621bc-ac4e-495a-9165-036a3a597d34.webm)

</details>

<details>
<summary>GUI Video</summary>

[kondo-ui.webm](https://user-images.githubusercontent.com/2771466/222951044-13484711-6107-45d4-aaa3-3140bbbba898.webm)

</details>

## Installation

### Graphic User Interface
### Command Line

<a href="https://repology.org/project/rust:kondo-ui/versions">
<img src="https://repology.org/badge/vertical-allrepos/rust:kondo-ui.svg" alt="Packaging status">
</a>
**Homebrew**

```sh
brew install kondo
```

Windows and Mac builds are available on the [Releases](https://github.com/tbillington/kondo/releases) page as `kondo-ui`.
**Source**

Requires [rust](https://www.rust-lang.org/tools/install).

```sh
git clone https://github.com/tbillington/kondo.git
cargo install --path kondo/kondo
```

You can install `kondo-ui` via [Cargo](https://doc.rust-lang.org/cargo/) with `cargo install kondo-ui`. Note you'll still need [druid's platform specific dependencies](https://github.com/xi-editor/druid#platform-notes) on mac and linux.
**Others**

### Command line
Binaries available on the [releases page](https://github.com/tbillington/kondo/releases).

<a href="https://repology.org/project/kondo/versions">
<img src="https://repology.org/badge/vertical-allrepos/kondo.svg" alt="Packaging status">
</a>

Windows, Mac, and Linux builds are available on the [Releases](https://github.com/tbillington/kondo/releases) page as `kondo`.
### Graphic User Interface

You can install `kondo` via [homebrew](https://formulae.brew.sh/formula/kondo) with `brew install kondo`.
**Source**

## Operation
Requires [rust](https://www.rust-lang.org/tools/install). You may need [platform specific dependencies on linux](https://github.com/xi-editor/druid#platform-notes).

### Graphic User Interface
```sh
git clone https://github.com/tbillington/kondo.git
cargo install --path kondo/kondo-ui
```

Binaries available on the [releases page](https://github.com/tbillington/kondo/releases).

<a href="https://repology.org/project/rust:kondo-ui/versions">
<img src="https://repology.org/badge/vertical-allrepos/rust:kondo-ui.svg" alt="Packaging status">
</a>

Launch `kondo-ui`, select a directory to be scanned, evaluate & clean directories as needed.
## Usage

### Command Line Interface

Running `kondo` without a directory specified will run in the current directory.

```
$ kondo
```sh
kondo
```

Supplying a path will tell `kondo` where to start. Multiple paths are supported.

```
$ kondo code/my_project code/my_project_2
```sh
kondo code/my_project code/my_project_2
```

## Example Output
Passing a time will filter projects to those that haven't been modified for at least the specified period. See `kondo --help` for the full list of options.

```sh
kondo --older 3M # only projects with last modified greater than 3 months
kondo -o3M # shorthand
```
$ kondo ~/code
/Users/choc/code/unity Cargo project
└─ target (489.1KiB)
delete above artifact directories? ([y]es, [n]o, [a]ll, [q]uit): y
deleted 489.1KiB
/Users/choc/code/multiplayer-kit/generator Cargo project
└─ target (874.3KiB)
delete above artifact directories? ([y]es, [n]o, [a]ll, [q]uit): n

/Users/choc/code/chat Cargo project
└─ target (37.2MiB)
delete above artifact directories? ([y]es, [n]o, [a]ll, [q]uit): q
Total bytes deleted: 489.1KiB
```
More options such as quiet mode, folowing symlinks, and filesystem restriction are viewable with `kondo --help`.

## Building/Development

To build `kondo` you can run `cargo build` from the projects root directory.
To build the cli `kondo` you can run `cargo build` and `cargo run` from the projects root directory.

To build the gui `kondo-ui` you must first navigate into the `kondo-ui` directory, then you can run `cargo build` and `cargo run`.

To build `kondo-ui` you must first navigate into the `kondo-ui` directory, then you can run `cargo build`.
The output binaries will be located in `target/debug/` or `target/release/` per [Cargo](https://doc.rust-lang.org/cargo/index.html) defaults.

## Similar Projects

- [The Tin Summer](https://github.com/vmchale/tin-summer)
- [Detox](https://github.com/whitfin/detox)
- [Sweep](https://github.com/woubuc/sweep)
- [npkill](https://github.com/voidcosmos/npkill)
- [Cargo Cleanall](https://github.com/LeSnake04/cargo-cleanall)
- [Cargo Sweep](https://github.com/holmgr/cargo-sweep)
- [Cargo Wipe](https://github.com/mihai-dinculescu/cargo-wipe)

0 comments on commit a7af954

Please sign in to comment.