.. image:: https://img.shields.io/pypi/pyversions/flowtool-base.svg
    :target: https://pypi.python.org/pypi/flowtool-base
    :alt: PyPI Python Versions

.. image:: https://img.shields.io/pypi/v/flowtool-base.svg
    :target: https://pypi.python.org/pypi/flowtool-base
    :alt: PyPI Latest Version

.. image:: https://img.shields.io/pypi/format/flowtool-base.svg
    :target: https://pypi.python.org/pypi/flowtool-base
    :alt: PyPI Distribution Format


flowtool-base
=============

The core package of `flowtool`.
It contains the actual main command (an executable created via the
`console_script` entrypoints API).
Along with the main command (that serves as a launcher for the subcommands
that make up `flowtool`'s functionality)  this package brings two commands:

.. code-block:: bash

    flowtool self-info
    flowtool self-update

These two commands do what you would expect them to do:

- `self-info` displays some information about `flowtool`, it's installed
  subcommands and the python environment it is running in. This is currently
  mostly helpful for debugging things while developing flowtool.

.. _pip: https://pypi.python.org/pypi/pip

- `self-update` uses pip_ to update flowtool components, that are installed.
  It has some command line options:
    - `--yes` (short: `-y`) update without asking
    - `--noop` (short: `-n`) don't actually update, just show what would be updated
    - The command accepts an arbitrary number of `pattern` arguments, that can
      be used to specify which packages should be updated. A `pattern` matches every
      package that contains `pattern` as a substring.

Some example invocations of the `self-update` command:

.. code-block:: bash

    flowtool self-update -y -n
    flowtool self-update -y -n base gitflow


Finally, the `flowtool-base` package contains library functions used in the
components of flowtool, that are possibly useful for more than one use-case.



Source Links
------------

The main executable (i.e. the `flowtool` and `ft` command) is implemented
in the module :ref:`src.flowtool.main`.

The module :ref:`src.flowtool.info` contains the source code of the `self-info`
command. It can be used to retrieve some runtime/environment information, that
can be helpful for debugging `flowtool`.

The command `self-update` is implemented in the module :ref:`src.flowtool.update`.
It can be used to conveniently keep flowtool and it's subcomponents up to date.

The module :ref:`src.flowtool.style` contains functions to produce colored
console output.
