Skip to main content

No project description provided

Project description

Universal Initializer

A versatile tool for initializing software projects from templates. Create React, Python, C++, Node.js, iOS, Android, and more projects with a single command.

Features

  • Configurable template-based project creation
  • Support for multiple project types (React, Vue, Flutter)
  • Parameter-based customization
  • Variable replacement in template files
  • Post-processing support for additional setup tasks
  • JSON output for integration with other tools

Installation

# Install with pip
pip install universalinit

# Or install directly from source
git clone https://github.com/Kavia-ai/universalinit.git
cd universalinit
pip install -e .

Usage

Create a new project using the command-line interface:

uniinit --name my-app --type react --output ./my-app --author "Your Name" --parameters typescript=true,styling_solution=styled-components

Command Options

Option Description Example
--author Project author (Required) --author "Your Name"
--config Path to JSON config file --config ./my-config.json
--description Project description --description "An awesome app"
--name Project name (Required) --name my-awesome-app
--output Output directory path (Required) --output ./my-app
--parameters Additional parameters as key=value pairs --parameters typescript=true,styling_solution=styled-components
--type Project type (Required) --type react
--version Project version --version 0.1.0

Available Project Types

  • react: React application
  • vue: Vue application
  • flutter: Flutter application

Parameter Examples

React Project

uniinit --name my-react-app --type react --output ./my-react-app --author "Your Name" --parameters typescript=true,styling_solution=styled-components

Vue Project

uniinit --name myservice --type vue --output ./myservice --author "Your Name"

JSON Configuration

Instead of command-line parameters, you can use a JSON configuration file:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "My awesome application",
  "author": "Your Name",
  "project_type": "react",
  "output_path": "./my-app",
  "parameters": {
    "typescript": true,
    "styling_solution": "styled-components"
  }
}

Then use:

uniinit --config ./my-config.json

Development

Running Tests

# Install dev dependencies
pip install pytest

# Run tests
pytest

Adding New Templates

  1. Create a new directory in src/universalinit/templates/ for your template
  2. Add a config.yml file with template configuration
  3. Add new template type in ProjectType enum in src/universalinit/templateconfig.py
  4. Add new replaceable parameters if necessary in the function ProjectConfig.get_replaceable_parameters in src/universalinit/templateconfig.py
  5. Add new environment parameters if necessary in the function TemplateConfigProvider.get_init_info in src/universalinit/templateconfig.py
  6. Add new template at TEMPLATE_MAP in src/universalinit/templates.py
  7. Register the template class in the ProjectInitializer constructor in src/universalinit/universalinit.py
  8. Create a new template class in src/universalinit/universalinit.py
  9. Update the epilog in main in src/universalinit/cli.py

Project details


Release history Release notifications | RSS feed

This version

0.1.7

Download files

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

Source Distribution

universalinit-0.1.7.tar.gz (472.6 kB view details)

Uploaded Source

Built Distribution

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

universalinit-0.1.7-py3-none-any.whl (526.5 kB view details)

Uploaded Python 3

File details

Details for the file universalinit-0.1.7.tar.gz.

File metadata

  • Download URL: universalinit-0.1.7.tar.gz
  • Upload date:
  • Size: 472.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.6 Darwin/23.5.0

File hashes

Hashes for universalinit-0.1.7.tar.gz
Algorithm Hash digest
SHA256 2423a7adb73af4ced7dfc9f3592f5769f101257e4ad470ea6ab084735d244554
MD5 6cab4be72f8571b53588bf356c1a4b27
BLAKE2b-256 8b32046d33d3a035dcbb662ffab1adca6e631ec59f1917431b525baf2f09a35a

See more details on using hashes here.

File details

Details for the file universalinit-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: universalinit-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 526.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.11.6 Darwin/23.5.0

File hashes

Hashes for universalinit-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1aa60b803de4b4d9f39f2a6977ff6de13004fc6033c17ab8cd98b1c1bbb67f02
MD5 65f3c255eadc795679200d22e23689b6
BLAKE2b-256 0a72c89c93d03fc40ff160c6ea67a7e99c329e6d1f2b06dc82d60295191fb07a

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