Skip to content

oleoneto/geny

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

geny

An extendable file generator

publish PyPI - Package PyPI - Python PyPI - License PyPI - Downloads

Installation

Install via pip:

pip install geny

After installation, the CLI will expose the binary with the name:

geny

Extending the CLI

Currently, there are two main ways of extending the functionality of the CLI:

  1. Adding your own commands/plugins
  2. Overriding the provided resource templates

Including your own commands

If you would like to extend the functionality of this CLI, you can include your own plugins/commands by setting an environment variable: GENY_PLUGINS. Simply set this variable to the path where your plugins are.

Plugin commands are auto-discovered if they are placed under the plugins directory, but please be sure to do the following for this to work:

  1. Name your package and click command the same. That is, a package called get, for example, should define a get command.
  2. Place the command definition within the package's main.py module. For example:
# get/main.py
import click


@click.command()
@click.pass_context
def get(ctx):
    pass
  1. Sub-commands should be added to the top-most command group in the package's main.py module.
# get/main.py
import click


@click.group() # <- group
@click.pass_context
def get(ctx):
  pass


@click.command()
@click.pass_context
def foo(ctx):
  pass


get.add_command(foo)
  1. Access your commands via your top-most command group.
geny get foo

NOTE: If you would like to skip a plugin/command from being auto-discovered, simply rename the package by either prepending or appending any number of underscores (_). Any code contained within the package will be ignored.

Overriding the templates

The flag --templates-dir can be used to configure an additional path wherein the CLI can look for resource templates. Alternatively, you can use the environment variable GENY_TEMPLATES_DIR for the same purpose.

Development

Install from source:

git clone https://github.com/oleoneto/geny.git
cd geny
pip install --editable .

Dependencies

Check out pyproject.toml for all installation dependencies.

To Do

Check out our open issues.

Pull requests

Found a bug? See a typo? Have an idea for new command? Feel free to submit a pull request with your contributions. They are much welcome and appreciated.

LICENSE

geny is BSD Licensed.