# Description
`typos-git-commit` is a command line tool that processes a [`typos`](https://crates.io/crates/typos-cli)
generated json file in order to :
1. correct typos in detected files (via sed)
2. make a commit for each correction (via a simple git commit command)
grouping every affected file with that correction in a single commit.
It has been written for a one shot project but one may find it to
be useful. Use `typos-git-commit --help` to get usage help.
# Usage
You can use the option `--noop` to print what will be executed without
effectively execute anything.
If you need to have a summary of all typos you can use `--only-list-typos`
option. You can add some details to this summary with `--details` option.
You can filter out what will be done using `--exclude-file`, `--exclude-typo`
and `--exclude-correction` (options may be invoked more than once) to
exclude a specific file, typo or correction from being taken into account.
Follow these steps to correct the typos found in all file but Python
and Javascript scripts of a project:
* Generate a json file with `typos`, for instance:
`typos doc/ --exclude *.py --exclude *.js --format json >typos.json`
* In the directory of the repository use `typos-git-commit` :
`typos-git-commit --filename typos.json`.
This command will correct only typos with more than 5 (by default)
characters and the ones that got only one correction proposal. To
modify the minimum length one may use `--minlen`.
* Review carefully the generated commits even if everything is done to
mitigate errors when replacing typos there are situations where this
correction is really an error.
* `--message` option allows to change your commit message. One may use
the special notations {typo} and {correction} that will be replaced
respectively by the typo to be corrected and the correction of that
typo. Tip: use `--noop` to see how the git message will be before
applying.
# Completion
The command has no short version arguments except for `--help` (`-h`)
and `--version` (`-V`) thus to ease writing arguments at command
line typos-git-commit can generate shell's completion scripts with
`--completion bash` option (see help to get all supported shells).
* Bash completion script is generated using `typos-git-commit --completion
bash`. You can add this completion script to your local profile using
these commands:
```
mkdir -p ~/.local/share/bash-completion/completions
typos-git-commit --completion bash > ~/.local/share/bash-completion/completions/typos-git-commit
```
# Changelog
See [ChangeLog](ChangeLog) file or use `typos-git-commit --changelog`