Files
devarea/README.md
T
2026-08-01 17:25:00 +02:00

74 lines
2.7 KiB
Markdown

# devarea
Workspace management repo for TTG: use it to clone the whole workspace in
its category-folder structure, and to verify that the clone list is in sync
with the Gitea server (`git.teletypegames.org`).
## Quick start
On a fresh machine:
```sh
mkdir TTG && cd TTG
git clone ssh://git@git.teletypegames.org:2222/tools/devarea
cd devarea
make setup # install tea + clone all repos + check
```
Repos are cloned into the parent directory of the devarea checkout (the
workspace root). To use a different target: `make clone ROOT=/path/to/workspace`.
## Make targets
| Target | What it does |
|---|---|
| `make help` | List available targets (default) |
| `make tea` | Install tea (Gitea CLI) via Homebrew if missing, and verify the login |
| `make clone` | Clone all repos based on `scripts/repos.list`; existing ones are skipped |
| `make check` | Compare the clone list against the server (`tea repo list --output json`) |
| `make setup` | All three in one: tea + clone + check |
## Scripts
All scripts live under `scripts/` and can also be run standalone:
- **`install-tea.sh`** — installs tea and verifies the login. Without a
login it prints the setup command (`tea login add --name ttg --url
https://git.teletypegames.org`).
- **`clone-repos.sh [target-dir]`** — clones every line of `repos.list`
into the given structure. Idempotent: existing clones are skipped.
- **`check-repos.sh`** — checks in both directions: repos that exist on
the server but are missing from the list (**MISSING**), and repos listed
as Gitea repos but absent from the server (**STALE**). Exits with 1 on
any hit, so it is CI-friendly.
## Data files
- **`scripts/repos.list`** — the repos to clone, one per line in
`<workspace-relative path>|<clone URL>` form. New repo on the server →
add it here (`make check` will complain if it is missing). Non-Gitea
repos (GitHub) may also appear; the check skips those.
- **`scripts/repos.ignore`** — repos that exist on the server but are
intentionally not cloned (`<owner>/<name>`); the check does not report
these as missing.
## Workspace structure
```
TTG/
├── devarea/ # this repo
├── teletypegames/ # public site monorepo (GitHub)
├── wiki-pages/ # wiki mirror (Grav)
├── archive/ # retired projects
├── demos/ # engine demos, experiments
├── games/ # games
├── media/ # assets, images (not git)
├── tools/ # standalone tools, infra
├── tools_bbs/ # BBS-related repos
├── tools_build/ # engine/build toolchains (*-tools)
└── tools_libs/ # own libraries (inkwell, rubbs, gorpg)
```
The mapping between repos and wiki pages is described in
[WIKI_CONNECTION.md](WIKI_CONNECTION.md).