Metadata-Version: 2.1
Name: boilee
Version: 0.1.0
Summary: An easy way to create a tool to generate code boilerplates like "npm init" and "vue create" for any programming language.
Home-page: https://github.com/vadolasi/easy-boilerplate
Author: Vitor Daniel
Author-email: vitor036daniel@gmail.com
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/vadolasi/easy-boilerplate/issues
Project-URL: Funding, https://donate.pypi.org
Project-URL: Say Thanks!, https://saythanks.io/to/vitor036daniel%40gmail.com
Project-URL: Source, https://github.com/vadolasi/easy-boilerplate/
Keywords: boilerplate cli generator templating
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Code Generators
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5
Description-Content-Type: text/markdown
Requires-Dist: click (==7.1.2)
Requires-Dist: docopt (==0.6.2)
Requires-Dist: jinja2 (==2.11.2)
Requires-Dist: prompt-toolkit (==1.0.14)
Requires-Dist: pyfiglet (==0.8.post1)
Requires-Dist: pyinquirer (==1.0.3)
Requires-Dist: pyyaml (==5.3.1)
Requires-Dist: regex (==2020.10.15)
Requires-Dist: sqlalchemy (==1.3.20)
Requires-Dist: wcwidth (==0.2.5)
Requires-Dist: markupsafe (==1.1.1) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
Requires-Dist: six (==1.15.0) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
Requires-Dist: pygments (==2.7.1) ; python_version >= "3.5"
Provides-Extra: dev
Requires-Dist: appdirs (==1.4.4) ; extra == 'dev'
Requires-Dist: black (==19.10b0) ; extra == 'dev'
Requires-Dist: cached-property (==1.5.2) ; extra == 'dev'
Requires-Dist: cerberus (==1.3.2) ; extra == 'dev'
Requires-Dist: certifi (==2020.6.20) ; extra == 'dev'
Requires-Dist: cffi (==1.14.3) ; extra == 'dev'
Requires-Dist: chardet (==3.0.4) ; extra == 'dev'
Requires-Dist: click (==7.1.2) ; extra == 'dev'
Requires-Dist: distlib (==0.3.1) ; extra == 'dev'
Requires-Dist: orderedmultidict (==1.0.1) ; extra == 'dev'
Requires-Dist: pathspec (==0.8.0) ; extra == 'dev'
Requires-Dist: pep517 (==0.9.1) ; extra == 'dev'
Requires-Dist: pipenv-setup (==3.1.1) ; extra == 'dev'
Requires-Dist: pipfile (==0.0.2) ; extra == 'dev'
Requires-Dist: pkginfo (==1.6.0) ; extra == 'dev'
Requires-Dist: readme-renderer (==28.0) ; extra == 'dev'
Requires-Dist: regex (==2020.10.15) ; extra == 'dev'
Requires-Dist: requests-toolbelt (==0.9.1) ; extra == 'dev'
Requires-Dist: rfc3986 (==1.4.0) ; extra == 'dev'
Requires-Dist: toml (==0.10.1) ; extra == 'dev'
Requires-Dist: twine (==3.2.0) ; extra == 'dev'
Requires-Dist: typed-ast (==1.4.1) ; extra == 'dev'
Requires-Dist: webencodings (==0.5.1) ; extra == 'dev'
Requires-Dist: plette[validation] (==0.2.3) ; (python_version >= "2.6" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: pyparsing (==2.4.7) ; (python_version >= "2.6" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: tqdm (==4.50.2) ; (python_version >= "2.6" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: attrs (==20.2.0) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: idna (==2.10) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: packaging (==20.4) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: pycparser (==2.20) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: python-dateutil (==2.8.1) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: six (==1.15.0) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: vistir (==0.5.2) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3") and extra == 'dev'
Requires-Dist: bleach (==3.2.1) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: colorama (==0.4.4) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: cryptography (==3.1.1) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: docutils (==0.16) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: pip-shims (==0.5.3) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: requests (==2.24.0) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: requirementslib (==1.5.13) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: tomlkit (==0.7.0) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: wheel (==0.35.1) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4") and extra == 'dev'
Requires-Dist: urllib3 (==1.25.11) ; (python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4" and python_version < "4") and extra == 'dev'
Requires-Dist: pygments (==2.7.1) ; (python_version >= "3.5") and extra == 'dev'
Requires-Dist: keyring (==21.4.0) ; (python_version >= "3.6") and extra == 'dev'
Requires-Dist: jeepney (==0.4.3) ; (sys_platform == "linux") and extra == 'dev'
Requires-Dist: secretstorage (==3.1.2) ; (sys_platform == "linux") and extra == 'dev'

# Boilee

[![License](https://img.shields.io/github/license/vadolasi/boilee?style=for-the-badge)](https://choosealicense.com/licenses/gpl-3.0/)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/vadolasi/boilee?style=for-the-badge)](https://github.com/vadolasi/boilee/releases)
[![Python version](https://img.shields.io/github/pipenv/locked/python-version/vadolasi/boilee?style=for-the-badge)](https://docs.python.org/3.8/)
[![Last commit](https://img.shields.io/github/last-commit/vadolasi/boilee?style=for-the-badge)](https://github.com/vadolasi/boilee/commits/main)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge)](https://github.com/psf/black)
[![Say Thanks!](https://img.shields.io/badge/say%20thanks-!-blue?style=for-the-badge)](https://saythanks.io/to/vitor036daniel%40gmail.com)

An easy way to create a tool to generate code boilerplates like `npm init` and `vue create` for any programming language.

Main features:

- Read arguments and inputs of the user;
- Manipulate the files using templates;
- Manipulate the file tree using templates;

## Installation

### Obtain the executable

You can get here the executables for [Windows](https://google.com.br) and [Linux](https://google.com.br)

### Installing via pip

You can install boilee via pip on your system (or on a venv) with the following command:

```bash
pip install boilee
```

### Installing from source code

To get the executable from the source see the [build](#build) section

## Usage

```bash
# Create a zip file that contains all the information of the boilerplate:
boilee make <input-directory> <output-file>
# Generate boilerplate
boilee run <input-file> [...boilerplate-options]
```

## Example

Create the following files:

```python
# example_boilerplate/project/scripts/python3.py

def main():
    print("Message from Python 3:")
    print("{{ message }}")

if __name__ == "__main__":
    main()
```

```python
# example_boilerplate/project/scripts/python2.py

def main():
    print "Message from Python 2:"
    print "{{ message }}"

if __name__ == "__main__":
    main()
```

```yaml
# example_boilerplate/.boilee/structure.yml

{{ project_name }} @content=project: # Creates a directory with a name provided by the user with the content of the "project" directory
    scripts: # "scripts" directory
        python{{ python-version }}.py
```

```yaml
# example_boilerplate/.boilee/parameters.yml

project_name:
    input-type: input
    parameter_type: argument
    message: Enter the project name
python-version:
    input-type: list
    message: Select a Python version
    choices:
        - choice:
            message: "Python 3"
            value: 3
        - choice:
            message: "Python 2"
            value: 2
message:
    input-type: input
    message: Enter a message
```

Create a zip file that contains all the information of the boilerplate:

```bash
boilee make example_boilerplate example.zip
```

Generate boilerplate and test:

```bash
boilee run example.zip example_python3 --python-version=3 --message=Hi!
python3 example_python3/scripts/python3.py

# Result
Message from Python 3:
Hi!
```

```bash
boilee run example.boilerplate example_python2 --python-version=2 --message=Hi!
python2 example_python2/scripts/python2.py

# Result
Message from Python 2:
Hi!
```

If a parameter is not provided it will be requested later.

![boilee run example](https://i.ibb.co/289HVb1/boilee.png)

## Contributing

See [Contributor Guidelines](CONTRIBUTING.md)

## Build

By default boilee uses [pyoxidizer](https://pyoxidizer.readthedocs.io/en/stable/) to generate an executable.

To generate an executable with pyoxidizer (if pyoxidizer is already installed) run the command:

```bash
pyoxidizer run
```

## License

[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/)


