/gitlike-commands

Easy python module for creating git-style subcommand handling.

Primary LanguagePythonApache License 2.0Apache-2.0

gitlike-commands

License Build Status Awesomebot Megalinter Issue Count PyPI - Format

Background

gitlike-commands is a python module for easily creating git-style subcommand handling.

Refactored out of 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

#!/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:

[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.