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 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.0.tar.gz (17.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.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: apg_booster-0.1.0.tar.gz
  • Upload date:
  • Size: 17.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.0.tar.gz
Algorithm Hash digest
SHA256 50ecbe99db623b529e7f1d4ddbc147bb586d5d2f49de5b93efb00821d7bc29ab
MD5 62f69faf4cb11ba5d0dd654232042ca6
BLAKE2b-256 8584ff28b79f681a5ff175601db71d700c24e2b04e4f8bfbe18e13ed72536915

See more details on using hashes here.

File details

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

File metadata

  • Download URL: apg_booster-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9851cce8cda93893caa36bde0bde9378129bdd86414960e786fcaade8405925
MD5 e6ca3fbc1db345561d4168c9c6ef6c12
BLAKE2b-256 6714f1e915244bf959360147424536aba7b02aa62980a18094ccd992f1a40fa4

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