forked from heavy-duty/rig
runner install is convergent by skipping: it sees a registered runner and leaves it alone. So rig could create a runner and never move or destroy one, and re-pointing a box at a different repo meant hand-rolled config.sh/svc.sh incantations against an install layout only rig knew about. - status: repo, name, labels, dir, unit — read-only, no token, no network. - remove: service down, then deregister. --local wipes the box without contacting GitHub, leaving a stale entry to delete by hand. - repoint: remove + re-register in one act, keeping the runner's name and reusing the binary already on the box. The service always comes down before deregistration in both paths: GitHub's removal throws "Uninstall service first" while the service is configured, and --local bypasses that check entirely, which would strand a running service pointed at deleted config. repoint collects both tokens up front — a token you turn out not to have must fail while the runner is still registered, not halfway through the move. Labels are the sharp edge: GitHub holds them, the runner does not persist them, and they are what runs-on matches. install now records what it registered with so repoint and status can read it back; a runner installed before that has nothing to read, so repoint falls back to the ci-runner default and warns before it touches anything. |
||
|---|---|---|
| .. | ||
| cli.sh | ||