1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# gitlike-commands
[](https://opensource.org/license/apache-2-0/)
[](https://actions-badge.atrox.dev/unixorn/gitlike-commands/goto?ref=main)


[](https://codeclimate.com/github/unixorn/gitlike-commands)

## Background
`gitlike-commands` is a python module for easily creating `git`-style subcommand handling.
Refactored out of [thelogrus](https://github.com/unixorn/thelogrus/) so you don't have to import any modules that aren't part of the Python standard library.
## Usage
`subcommand_driver` automatically figures out what name the script was called as, then looks for subcommands and runs them if found, passing in any command line options.
So if you have a `foo` script in your `$PATH` as shown below
```python
#!/usr/bin/env python3
from gitlike_commands import subcommand_driver
if __name__ == '__main__':
subcommand_driver()
```
Running `foo bar baz` will look for a `foo-bar-baz` script, and if present in your `$PATH`, run it. If there is no `foo-bar-baz`, it will look for `foo-bar`, and if it finds that, run `foo-bar baz`.
If you're using poetry in your python project, you can add a gitlike driver as a scripts entry:
```toml
[tool.poetry.scripts]
gitalike-demo = "gitlike_commands:subcommand_driver"
```
The subcommands can be written in any language, the only requirements are that they are marked executable and follow the `foo-something` naming convention.
|