Metadata-Version: 2.4
Name: fuck-repo
Version: 0.1.0
Summary: Scaffold a large, original enterprise-style monorepo (frontend, backend, db, migrations, apps, admin, crm, audit) from a name, org and website. Pure stdlib, no deps.
Author: Hasan Raza
License: MIT
Project-URL: Homepage, https://github.com/Hasan72341/repogen
Project-URL: Repository, https://github.com/Hasan72341/repogen
Project-URL: Issues, https://github.com/Hasan72341/repogen/issues
Keywords: scaffold,generator,monorepo,template,cli,boilerplate,codegen
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# repogen

A pure-stdlib Python CLI that scaffolds a **large, original enterprise-style
monorepo** from three answers: **project name**, **organization name**, and
**website**.

It generates **4000+ files** by default: frontend (web / admin / crm / mobile),
multiple backend services, a database layer with per-entity migrations, shared
SDK / UI / config packages, feature modules, infra (docker / k8s / terraform /
CI), docs, and **`.env` files** (real + `.example` + dev + prod) at every level.

- **No network access.** Nothing is downloaded or copied from the internet.
- **No third-party dependencies.** Standard library only.
- **Original templates.** Every emitted file is produced from templates authored
  inside this package — generic scaffolding, not code lifted from anywhere.
- **Any tech stack.** Choose from several stacks; the generators dispatch to the
  right language and framework.

## Install

```bash
cd repogen
pip install -e .        # exposes the `repogen` command
# or run without installing:
python -m repogen
```

## Usage

Interactive (prompts for name, org, website, stack):

```bash
repogen
```

Non-interactive:

```bash
repogen \
  --name "Acme Cloud" \
  --org "Acme Inc" \
  --website "https://acme.example" \
  --stack fastapi-next-postgres \
  --output ./acme-cloud \
  --yes
```

Preview the file count without writing anything:

```bash
repogen --name Acme --org "Acme Inc" --website acme.example --dry-run --yes
```

List stacks:

```bash
repogen --list-stacks
```

## Stacks

| key                       | backend | frontend | db       |
|---------------------------|---------|----------|----------|
| `fastapi-next-postgres`   | FastAPI | Next.js  | Postgres |
| `express-react-postgres`  | Express | React    | Postgres |
| `django-vue-mysql`        | Django  | Vue      | MySQL    |
| `nestjs-next-postgres`    | NestJS  | Next.js  | Postgres |

## What gets generated

```
apps/         web · admin · crm · mobile clients (per-entity pages/screens)
services/     domain backend services (per-entity model/service/router/tests)
packages/     shared sdk · ui · config · pyshared · feature modules
db/           schema · per-entity migrations · seeds · alembic config
infra/        docker-compose · k8s manifests · terraform · nginx gateway
docs/         architecture · runbook · ADRs · OpenAPI stubs
.env*         real + example + development + production, at every level
```

## Flags

| flag              | purpose                                        |
|-------------------|------------------------------------------------|
| `--name`          | project / product name                         |
| `--org`           | organization name                              |
| `--website`       | public URL                                     |
| `--stack`         | one of the stacks above                        |
| `--output` `-o`   | output directory (default `./<slug>`)          |
| `--target-files`  | minimum file count (default `4000`)            |
| `--dry-run`       | count only, write nothing                      |
| `--yes` `-y`      | skip confirmation                              |
| `--list-stacks`   | print stacks and exit                          |

## Notes on secrets

Generated `.env` files contain locally-generated random secrets for development
convenience. `.env.example` / `.env.production` ship placeholder values, and the
generated `.gitignore` excludes real `.env` files from version control. Rotate
before any real deployment.
