Rename GitTally to Werkator
`gitTally` is the name of another product in the git space, so the rename is a precaution; nothing about what the build system does changes. The name follows one rule: `Werkator` where it is prose, capitalized where it is a Kotlin type and its file, lowercase everywhere a machine reads it — the command, packages, paths, configuration keys and values, the Gitea check context. Environment variables keep their convention and are uppercase throughout. Every configuration file is still found under its pre-rename name (`ConfigFiles`): `.gittally.yml` at the repository root, in a build worktree and as committed on a branch, `.git/gittally/.gittally.yml` for the machine layer. The current name wins where both exist, and the old file is then ignored rather than merged — two files side by side are a half-done rename, not a layering. Without the fallback an installation that updated without renaming would not fail: a configuration that is not found leaves every setting at its default, so it would come up looking healthy while having forgotten its credentials and its builds. `docs/werkator-migrationsplan.md` lists what the fallback does not cover and has to be moved by hand — above all the state directory `.git/werkator/`, which holds the build history, the control token and the worktrees, and has no fallback of its own. `docs/migration-from-legacy.md` is deleted with this: it mapped the legacy script's environment variables, and every host it addressed has long since moved to the YAML configuration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7f550689dd
commit
35f06ec1ec
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
# Example: set up a Werkator instance that watches and builds Werkator itself.
|
||||
# Run from inside a working checkout of the Werkator repository.
|
||||
#
|
||||
# Usage:
|
||||
# GIT_ACCOUNT=mi GIT_TOKEN=xxxx ./docs/examples/setup-werkator-selfhost.sh
|
||||
# (both empty is fine for a public origin — commit statuses just won't be published)
|
||||
set -euo pipefail
|
||||
|
||||
INSTALL_DIR="${INSTALL_DIR:-$HOME/werkator-selfhost}"
|
||||
GIT_ACCOUNT="${GIT_ACCOUNT:-}" # technical Gitea user for HTTPS fetch + status API
|
||||
GIT_TOKEN="${GIT_TOKEN:-}" # Gitea API token — stays in the uncommitted config file
|
||||
SERVER_PORT="${SERVER_PORT:-18080}"
|
||||
|
||||
DEV_CHECKOUT=$(git rev-parse --show-toplevel)
|
||||
ORIGIN_URL="${ORIGIN_URL:-$(git -C "$DEV_CHECKOUT" remote get-url origin)}"
|
||||
|
||||
# 1. Build the Werkator jar — the last Gradle run you ever start by hand.
|
||||
(cd "$DEV_CHECKOUT" && ./gradlew --console=plain build)
|
||||
|
||||
# 2. Dedicated clone: builds run in worktrees under its .git/werkator/worktrees,
|
||||
# completely separate from your dev checkout.
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
cp "$DEV_CHECKOUT/build/libs/werkator.jar" "$INSTALL_DIR/werkator.jar"
|
||||
if [ ! -d "$INSTALL_DIR/repo/.git" ]; then
|
||||
git clone "$ORIGIN_URL" "$INSTALL_DIR/repo"
|
||||
fi
|
||||
cd "$INSTALL_DIR/repo"
|
||||
|
||||
# 3. Generate the config templates; existing files are kept. The clone already
|
||||
# carries the committed .werkator.yml, so this only creates the machine config
|
||||
# (.git/werkator/.werkator.yml).
|
||||
java -jar "$INSTALL_DIR/werkator.jar" init
|
||||
|
||||
# 4. Machine-specific overrides and secrets (.git/werkator/ is never committed;
|
||||
# this file deep-merges over .werkator.yml and wins).
|
||||
cat > .git/werkator/.werkator.yml <<EOF
|
||||
git:
|
||||
account: "$GIT_ACCOUNT"
|
||||
token: "$GIT_TOKEN"
|
||||
server:
|
||||
port: $SERVER_PORT
|
||||
EOF
|
||||
chmod 600 .git/werkator/.werkator.yml
|
||||
|
||||
# The committed .werkator.yml already builds Werkator itself:
|
||||
# buildCommand: ./gradlew --console=plain --no-daemon test
|
||||
# artifactDirs: [build/reports]
|
||||
|
||||
# 5. Optional kick-start: put the local ref one commit behind origin so the very
|
||||
# first poll triggers a build — otherwise Werkator waits for the next push.
|
||||
# Builds never move this ref or touch this checkout, so lagging is harmless.
|
||||
git reset --hard --quiet HEAD~1 || true
|
||||
|
||||
# 6. Run it (Ctrl-C stops it cleanly). For a permanent setup, run
|
||||
# `java -jar "$INSTALL_DIR/werkator.jar" init --systemd` here instead and follow
|
||||
# docs/deployment.md — the generated unit points at this jar and repo.
|
||||
echo "Werkator self-host: http://localhost:$SERVER_PORT/ — watching $ORIGIN_URL"
|
||||
exec java -jar "$INSTALL_DIR/werkator.jar" server
|
||||
Reference in New Issue
Block a user