fb2-clean 0.6.0

Simple GUI/CLI utility to remove images from fb2 books
Documentation
# fb2-clean

Simple GUI/CLI utility to remove images from fb2 books.

[![Tests](https://github.com/nujievik/fb2-clean/actions/workflows/tests.yml/badge.svg)](
https://github.com/nujievik/fb2-clean/actions/workflows/tests.yml)

![logo](https://raw.githubusercontent.com/nujievik/fb2-clean/main/assets/logo.png)


## Quick Start

### GUI version

1. [Download]https://github.com/nujievik/fb2-clean/releases a 
Fb2CleanGui-* archive for your system.
2. Unpack it.
3. Run the unpacked **Fb2CleanGui**.
4. Setup if needed.
5. Press **START** button to clean.

![gui-example](https://raw.githubusercontent.com/nujievik/fb2-clean/main/assets/gui-example.png)

### CLI version

1. [Download]https://github.com/nujievik/fb2-clean/releases a
fb2-clean-* archive for your system.
2. Unpack it.
3. Run the unpacked **fb2-clean** in a directory with fb2 files.

![cli-example](https://raw.githubusercontent.com/nujievik/fb2-clean/main/assets/cli-example.png)


## Default Behaviour

- Saves cleaned files to the **cleaned** subdirectory.
- Cleans all **fb2** and **fb2.zip** in a CWD directory (for GUI in 16
its subdirectories too).
- Removes **binary**, **coverpage**, and **image** tags.
- Keeps input extension: saves **fb2** as **fb2** and **fb2.zip** as
**fb2.zip**.


## Recursive Search

In CLI use `fb2-clean -r16` to enable recursive search.
For GUI recursive search is enabled by default.


## Advanced Use 🤓

Run `fb2-clean -h` to display help.

| Option                  | Description                       |
|-------------------------|-----------------------------------|
| `-i, --input <path>` | Set directory with files OR file to clean |
| `-o, --output <dir>` | Save cleaned files to directory |
| `-r, --recursive <n>` |  Clean files in subdirectories too (up to n level) |
| `-t, --tags <n[,m...]>` | Remove tags from file structure |
| `-z, --zip` | Save output files as fb2.zip |
| `-Z, --unzip` | Save output files as fb2 |
| `-w, --overwrite` | Overwrite input files |
| `-e, --exit-on-err` | Don't clean next files on error |
| `-j, --jobs <n>` | Set max parallel cleaning |
| `-l, --lang <lng>` | Set log language (eng OR rus) |


## Manual Build 🤓

1. Install [Rust]https://www.rust-lang.org/tools/install.
2. Clone the repo:
```
git clone https://github.com/nujievik/fb2-clean --depth 1
```
3. Enter the project directory:
```
cd fb2-clean
```
4. Build:
    - GUI version:
    ```
    cargo build --release --bin Fb2CleanGui --no-default-features --features gui
    ```

    - CLI version:
    ```
    cargo build --release
    ```
5. On success, the binary will be in **target/release/** directory.