Metadata-Version: 2.1
Name: qwikstart
Version: 0.8.0
Summary: Code generator for automating configuration, setup, and yak shaving.
Home-page: https://github.com/tonysyu/qwikstart
License: BSD-3-Clause
Keywords: console,terminal
Author: Tony S. Yu
Author-email: tsyu80@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Provides-Extra: docs
Requires-Dist: binaryornot (>=0.4.4,<0.5.0)
Requires-Dist: click (>=8.1.2,<9.0.0)
Requires-Dist: colorlog (>=6.6.0,<7.0.0)
Requires-Dist: dataclasses (>=0.7,<0.8); python_version >= "3.6" and python_version < "3.7"
Requires-Dist: gitpython (>=3.1.0,<4.0.0)
Requires-Dist: jinja2 (>=3.1.1,<4.0.0)
Requires-Dist: jinja2-time (>=0.2.0,<0.3.0)
Requires-Dist: prompt-toolkit (>=3.0.3,<4.0.0)
Requires-Dist: pygments (>=2.5.2,<3.0.0)
Requires-Dist: requests (>=2.23.0,<3.0.0)
Requires-Dist: rope (>=0.23.0,<0.24.0)
Requires-Dist: ruamel.yaml (>=0.17.21,<0.18.0)
Requires-Dist: sphinx (>=4.5.0,<5.0.0); extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: sphinxcontrib-apidoc (>=0.3.0,<0.4.0); extra == "docs"
Requires-Dist: sphinxcontrib-napoleon; extra == "docs"
Requires-Dist: termcolor (>=1.1.0,<2.0.0)
Requires-Dist: typing-extensions (>=4.1.1,<5.0.0)
Requires-Dist: yamllint (>=1.23.0,<2.0.0)
Project-URL: Documentation, https://qwikstart.readthedocs.io/
Project-URL: Repository, https://github.com/tonysyu/qwikstart
Description-Content-Type: text/x-rst

qwikstart: Code generator for fun and profit
============================================

.. default-role:: literal

.. image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg
   :target: https://github.com/tonysyu/qwikstart/blob/master/LICENSE

.. image:: https://travis-ci.com/tonysyu/qwikstart.svg?branch=master
   :target: https://travis-ci.com/tonysyu/qwikstart

.. image:: https://codecov.io/gh/tonysyu/qwikstart/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/tonysyu/qwikstart

.. image:: https://readthedocs.org/projects/qwikstart/badge/
   :target: https://qwikstart.readthedocs.io


- **Documentation:** https://qwikstart.readthedocs.io
- **Source:** https://github.com/tonysyu/qwikstart

`qwikstart` is a code generator for integrating code into existing projects. It's
similar to code generators like cookiecutter_, yeoman_, and hygen_ but with a focus on
adding code to existing projects.

A simple `hello-world.yml` script in qwikstart would look something like:

.. code-block:: yaml

    steps:
        "Ask for name":
            name: prompt
            inputs:
                - name: "name"
                  default: "World"
        "Display message":
            name: echo
            message: |

                Hello, {{ qwikstart.name }}!

The first step uses the `prompt` operation with a single input `"name"`, with a default
value of `"World"` (which is editable when running the script). The next step just uses
the `echo` operation to display a message. This script can be using `qwikstart run`:

.. code-block:: bash

    $ qwikstart run hello-world.yml

    Please enter the following information:
    name: World

    Hello, World!

Install
=======

The recommended way of installing `qwikstart` is to use pipx_:

.. code-block:: bash

    pipx install qwikstart

If you happen to be setting up pipx_ for the first time, the
`pipx installation instructions`_ suggest running `pipx ensurepath` to update
the user path. Note, if you use `~/.profile` instead of `~/.bash_profile`,
this will add `~/.bash_profile`, which will take precendence over `~/.profile`.
Either move the code from `~/.bash_profile` to `~/.profile` or
`link your profiles <https://superuser.com/a/789465>`_.

.. _pipx: https://pypi.org/project/pipx/
.. _pipx installation instructions:
    https://pipxproject.github.io/pipx/installation/


Basic Usage
===========

After installing `qwikstart`, you can run a simple hello-world example using the
following:

.. code-block:: bash

    $ qwikstart run --repo https://github.com/tonysyu/qwikstart examples/hello_world.yml


By default, there are abbreviations for common git repos, so the above can also be
written:

.. code-block:: bash

    qwikstart run --repo gh:tonysyu/qwikstart examples/hello_world.yml


See Also
========

There are a lot code generators and scaffolding tools out there, and the following is
just a selection of some of the most popular ones:

- cookiecutter_: A command-line utility that creates projects from cookiecutters
  (project templates)
- hygen_: The scalable code generator that saves you time.
- yeoman_: The web's scaffolding tool for modern webapps

.. _hygen: https://www.hygen.io/
.. _cookiecutter: https://cookiecutter.readthedocs.io/
.. _yeoman: https://yeoman.io/


