Metadata-Version: 2.1
Name: cmdcomp
Version: 2.6.0
Summary: command shell completion file generator.
Home-page: https://yassun7010.github.io/cmdcomp/
License: BSD-3-Clause
Author: yassun7010
Author-email: yassun7010@outlook.com
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: mergedeep (>=1.3.4,<2.0.0)
Requires-Dist: pydantic (>=2.3,<3.0)
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: rich (>=13.4.2,<14.0.0)
Requires-Dist: rich-argparse (>=1.3.0,<2.0.0)
Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)
Project-URL: Repository, https://github.com/yassun7010/cmdcomp
Description-Content-Type: text/markdown

# Command Completion Generator Tool

<!-- --8<-- [start:badges] -->

[![docs](https://github.com/yassun7010/cmdcomp/actions/workflows/publish-mkdocs.yml/badge.svg)](https://yassun7010.github.io/cmdcomp/)
[![test](https://github.com/yassun7010/cmdcomp/actions/workflows/test-suite.yml/badge.svg)](https://github.com/yassun7010/cmdcomp/actions)
[![pypi package](https://badge.fury.io/py/cmdcomp.svg)](https://pypi.org/project/cmdcomp)
[![docker version](https://img.shields.io/docker/v/yassun7010/cmdcomp/latest?label=docker%20version)](https://hub.docker.com/r/yassun7010/cmdcomp)

<!-- --8<-- [end:badges] -->

`cmdcomp` generate command shell completion file (`bash` or `zsh`) from config
`JSON`/`YAML`/`TOML` file.

![image](./docs/images/image.png)

## Why was `cmdcomp` created?

The completion files for many cli tools (`aws`, `gcloud`, etc.) are provided by the tools themselves.
If you want to use these cli tools in multiple products or multiple environments (prd, dev, etc.),
it is useful to be able to switch contexts easily (e.g. `mycli prd aws s3 ...`).
`cmdcomp` provides a completion file for such a simple shell script wrapper.
You can easily switch between settings for each environment.

This tool can generate shell script completion files with config described in `YAML`, `TOML` or `JSON`.

Today, more and more cli tools are being used in development,
and if you want to generate a completion file for a simple wrapper script,
`cmdcomp` will be of great help.


## Install

```shell
pip install cmdcomp
```

## Usage

```shell
cmdcomp --config $YOUR_CONFIG_FILE --shell-type bash
```

## Documentation

See [documentation](https://yassun7010.github.io/cmdcomp/) for more details.

## Examples

See [examples](https://github.com/yassun7010/cmdcomp/tree/main/examples/v2).

