b448592a20fcdb3398dd8e27fa3dcafe8d6d2fc6
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:
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 ofrepos.listinto 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 checkwill 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.
Languages
Shell
83.6%
Makefile
16.4%