Metadata-Version: 2.1
Name: cmdcomp
Version: 2.5.4
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. However, if one wants to use these cli tools with multiple
products and multiple environments (prd, dev, etc.), it would be useful to be
able to switch contexts easily. In this situation, I have a simple shell script
wrapper that easily switches between settings for each environment. (like
`mycli prd aws s3 ...`).

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

In today's development, more and more cli tools are being used.

If you want to generate completion files for simple wrapper scripts, `cmdcomp`
can 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).

