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.1.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.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: apg_booster-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 809bc8883be0de6ac1638bb0cd03836ed14d79c8254b660bcae79850af10b6a4
MD5 b63e80bb9846aa3b8c1287743f283ade
BLAKE2b-256 207536eec7cd9ac1cfd222281fabd9c8d63cb6a96824ca025855cf9bdb39518c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: apg_booster-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 36d73e2943ac7a3922ee8e27328bab933f9089527252af1e47b23670ca773bfb
MD5 806b048daa8807d07f1079944032078f
BLAKE2b-256 ab39e7173bfd535abf213a7aef12d807f3e902cd699a44e7c0830a93d7305696

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