keepass-diff 0.1.0

This CLI-tool reads two Keepass (.kdbx) files and prints their differences.
<div align="center">
  <img src="keepass-diff.png" alt="keepass-diff" />
</div>

# keepass-diff

This CLI-tool diffs two Keepass (.kdbx) files and prints their differences.

## Usage

```
cargo run <file-a> <file-b>
```

The CLI will ask for the password for both files individually.

![Example Screencast](docs/screencast.gif)

You can also provide one or both passwords on the command line (please be aware
that this will expose them to other users logged on to the system):

```
cargo run -- <file-a> <file-b> --password-a <password-a> --password-b <password-b>
```

(the -- is necessary for cargo to pass the arguments through to keepass-diff)

If the files have the same password, you can use the `--passwords <password>` 
flag. Be aware this has the same problem as above:

```
cargo run -- <file-a> <file-b> --passwords <password>
```

If you want to pipe the output of the command into another file or script, you 
may want to disable the terminal colors. You can do so with the `--no-color` or 
`-C` flag.

`--help` yields:

```
USAGE:
    keepass-diff [FLAGS] [OPTIONS] <INPUT-A> <INPUT-B>

FLAGS:
    -h, --help        Prints help information
    -C, --no-color    Disables color output
    -V, --version     Prints version information

OPTIONS:
        --password-a <password-a>    Sets the password for the first file (will be asked for if omitted)
        --password-b <password-b>    Sets the password for the second file (will be asked for if omitted)
        --passwords <passwords>      Sets the password for both files (if it's the same for both files)

ARGS:
    <INPUT-A>    Sets the first file
    <INPUT-B>    Sets the second file
```

## Used libraries:

* [clap]https://clap.rs/ to read command line arguments
* [rpassword]https://github.com/conradkdotcom/rpassword to read the passwords.
* [keepass]https://github.com/sseemayer/keepass-rs to read `.kdbx` files.
* [termcolor]https://github.com/BurntSushi/termcolor to print with colors.

Password for the Keepass demo files: `demopass`

## Contributing

Care to help? I'm pretty new to Rust, so if anyone likes to help or teach me 
cool stuff, please reach out!