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

2.7 KiB

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 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.