Skip to main content

A CLI tool to create and manage projects with a template

Project description

Booster

A template-based project generator that helps you quickly scaffold new projects based on predefined templates.

Features

  • Create and manage project templates
  • Generate new projects from templates
  • Define and customize template variables
  • Validate template configurations
  • Support for post-creation hooks

Installation

pip install booster
-- for uvx user
uvx apg-booster 

For development:

# Clone the repository
git clone https://github.com/yourusername/booster.git
cd booster

# Create a virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

Usage

Creating a New Template

booster new my-template

With variables:

booster new my-template --variable name=string --variable version=string

Creating a Project from a Template

booster create my-template my-project

With variable overrides:

booster create my-template my-project --variable name=awesome-app --variable version=1.0.0

Viewing Template Details

booster show my-template

Template Structure

Templates are stored in the templates/ directory. Each template consists of:

  • A booster.json configuration file
  • Template files and directories to be copied to the new project

Example booster.json:

{
  "name": "my-template",
  "description": "A template for awesome projects",
  "version": "1.0.0",
  "variables": {
    "name": {
      "type": "string",
      "description": "Project name",
      "default": "my-project"
    },
    "version": {
      "type": "string",
      "description": "Project version",
      "default": "0.1.0"
    }
  },
  "template_paths": {
    "src": "src/{{ name }}",
    "tests": "tests/{{ name }}"
  },
  "hooks": {
    "post_create": "echo 'Project created successfully!'"
  }
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Testing

Run tests using pytest:

pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Click for the command-line interface

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apg_booster-0.1.2.tar.gz (656.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apg_booster-0.1.2-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file apg_booster-0.1.2.tar.gz.

File metadata

  • Download URL: apg_booster-0.1.2.tar.gz
  • Upload date:
  • Size: 656.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for apg_booster-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2a52fecbc9865900b5946d8b64392920559652fafd7adfa5727e3d2ca022efa3
MD5 27eac2822a7d790b407d4eebd645d36c
BLAKE2b-256 9cb7728e6da6ac8bb9ce4aca91e2f2036b00dc6e071a9c38392ca81d26bbc7de

See more details on using hashes here.

File details

Details for the file apg_booster-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: apg_booster-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for apg_booster-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5bba07468900c837fc317a1bd0c732b47b32377f1b67b3ef147ef603550caf27
MD5 f6703fa64df84074a5994b7625ba94f4
BLAKE2b-256 6e53771616f8771d96f3ef6a9c767d0edf0ae1e03f572468ae9df2b75180b897

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page