An open API service indexing awesome lists of open source software.

https://github.com/tameronline/reposmith


https://github.com/tameronline/reposmith

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

# โšก RepoSmith

[![PyPI version](https://img.shields.io/pypi/v/reposmith-tol?style=flat-square)](https://pypi.org/project/reposmith-tol/)
![Python](https://img.shields.io/pypi/pyversions/reposmith-tol?style=flat-square)
![License](https://img.shields.io/github/license/liebemama/RepoSmith?style=flat-square)
[![CI](https://github.com/liebemama/RepoSmith/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/liebemama/RepoSmith/actions/workflows/ci.yml)
[![Sponsor](https://img.shields.io/badge/Sponsor-๐Ÿ’–-pink?style=flat-square)](https://github.com/sponsors/liebemama)

**RepoSmith** is a **portable Python project bootstrapper** โ€” a zero-dependency CLI & library that helps you spin up new projects instantly.
With one command, you get a ready-to-code environment: virtualenv, config files, VS Code setup, `.gitignore`, LICENSE, and optional CI.

---

## โœจ Features
- ๐Ÿš€ **Zero dependencies** โ€” built only with Python stdlib
- โš™๏ธ **Virtual environment** auto-created (`.venv`)
- ๐Ÿ“ฆ **requirements.txt** scaffolded (empty but ready)
- ๐Ÿ“ **Entry file** (`main.py` or `run.py`) with a welcome message
- ๐Ÿ›ก **LICENSE** (MIT by default, more soon)
- ๐Ÿ™ˆ **.gitignore** presets (Python, Node, Djangoโ€ฆ)
- ๐Ÿ’ป **VS Code config** (`settings.json`, `launch.json`, workspace)
- ๐Ÿ”„ **GitHub Actions** workflow (`.github/workflows/ci.yml`)
- ๐Ÿ”ง Idempotent: runs safely again without overwriting unless `--force`

---

## โšก Quick Start

### Option 1 โ€” run via Python module (always works)
```powershell
cd MyProject
py -m reposmith.main init --entry run.py --with-vscode --with-ci
```

### Option 2 โ€” run via CLI (if Scripts folder is on PATH)
```powershell
reposmith init --entry run.py --with-vscode --with-ci
```

Both commands will:
- create `.venv/`
- add `requirements.txt`, `run.py`, `.gitignore`, `LICENSE`, `.vscode/`
- configure everything automatically with defaults

---

## ๐Ÿš€ Usage

Basic:
```powershell
reposmith init --entry main.py
```

With extras:
```powershell
reposmith init --entry run.py --with-ci --with-gitignore --with-license --with-vscode --author "YourName"
```

Flags:
- `--force` โ†’ overwrite existing files (with `.bak` backup)
- `--no-venv` โ†’ skip creating `.venv`
- `--with-license` โ†’ add LICENSE (MIT)
- `--with-gitignore` โ†’ add .gitignore (Python preset by default)
- `--with-vscode` โ†’ add VS Code config
- `--with-ci` โ†’ add GitHub Actions workflow
- `--author` / `--year` โ†’ customize LICENSE metadata
- `--ci-python` โ†’ set Python version for CI (default: 3.12)

---

## ๐Ÿ“ฆ Installation
```powershell
py -m pip install --upgrade reposmith-tol
```

If PATH not configured, use:
```powershell
py -m reposmith.main init --entry run.py
```

---

## ๐Ÿงช Development
Run tests:
```powershell
python -m unittest discover -s tests -v
```

---

## ๐Ÿ—บ๏ธ Roadmap

๐Ÿ”— [Follow the project progress on GitHub Projects](https://github.com/orgs/liebemama/projects/2)

---

## ๐Ÿ›ก License
This project is licensed under the [MIT License](https://github.com/liebemama/RepoSmith/blob/main/LICENSE).
ยฉ 2025 TamerOnLine

---

## ๐Ÿ’ฌ Support

- ๐Ÿ› **Report Issues:** [GitHub Issues](https://github.com/liebemama/RepoSmith/issues)
- ๐Ÿ’ก **Feature Requests:** [GitHub Issues](https://github.com/liebemama/RepoSmith/issues) (ุงุฎุชุฑ ู†ูˆุน *Feature Request*)
- ๐Ÿ’– **Sponsor:** [GitHub Sponsors](https://github.com/sponsors/liebemama)
- ๐Ÿ“ง **Contact:** (info@tameronline.com)