2026-04-26 09:33:34 +02:00
2026-04-26 09:33:34 +02:00
2026-04-25 13:30:01 +02:00
2026-04-25 13:30:01 +02:00
2026-04-25 13:30:01 +02:00

RV Launcher

To repo zawiera launcher do workspace rv:

  • workspace.json trzyma rooty workspace, socketow i toolingu
  • workspace.py listuje serie i karty z dysku
  • workspace.py tmux-container ... stawia sesje tmux z kontenerem w pane 0
  • doc/usage.md opisuje przelaczniki CLI i format listowania

Pobranie repo

Docelowy katalog:

~/dev/workspace/rv/tools/rv-launcher

Bootstrap:

mkdir -p ~/dev/workspace/rv/tools
cd ~/dev/workspace/rv/tools
git clone http://77.90.8.171:3001/edu-tools/rv-launcher.git
cd rv-launcher

Autoryzacja

Masz dwie drogi.

Droga 1: remote r1 z tokenem w URL

To jest wariant dydaktyczny, jesli uczen ma cwiczyc reczne dodawanie remota z tokenem do konkretnego zdalnego endpointu.

Przyklad:

git remote add r1 http://u1:TOKEN@77.90.8.171:3001/edu-tools/rv-launcher.git
git fetch r1 main
git switch main
git pull --ff-only r1 main

Jesli po zajeciach uzytkownik bedzie chcial wyslac projekt na swoje konto Gitea, moze zmienic URL remota r1 na swoje repo:

git remote set-url r1 http://LOGIN:TOKEN@77.90.8.171:3001/LOGIN/rv-launcher.git

Droga 2: lokalny tokens/gitea_tokens.json

To jest wariant alternatywny, wygodniejszy wtedy, gdy launcher ma sam wykonywac clone, fetch i push, albo gdy uzytkownik po zajeciach chce pracowac juz na wlasnych repo bez wpisywania tokena do kazdego remota.

Przed operacjami wymagajacymi autoryzacji dodaj lokalny token do:

~/dev/workspace/rv/tokens/gitea_tokens.json

Minimalny format:

{
  "users": {
    "u1": {
      "tokens": {
        "t1": "TU_WSTAW_TOKEN"
      }
    }
  }
}

Plik powinien byc lokalny, niewersjonowany i miec prawa 600.

Przyklad:

mkdir -p ~/dev/workspace/rv/tokens
chmod 700 ~/dev/workspace/rv/tokens
chmod 600 ~/dev/workspace/rv/tokens/gitea_tokens.json

Fetch i switch

Domyslna galaz launchera to main.

Po sklonowaniu:

git fetch origin main
git switch main
git pull --ff-only

Jesli pracujesz przez r1, odpowiednikiem jest:

git fetch r1 main
git switch main
git pull --ff-only r1 main

Jesli chcesz wejsc na inna galaz, na przyklad feat/x, uzyj:

git fetch origin feat/x
git switch --track -c feat/x origin/feat/x

Wariant przez r1:

git fetch r1 feat/x
git switch --track -c feat/x r1/feat/x

Podstawowe komendy

Przyklady:

python3 workspace.py show-config
python3 workspace.py list-series
python3 workspace.py list-cards inf
python3 workspace.py tmux-container inf 03 --dry-run
python3 workspace.py tmux-container inf 03 --session rv-inf03 --attach

Skrypt nie trzyma listy kart w JSON-ie. Czyta series/*/* z series_root.

S
Description
stemctl workspace, container and lesson session control plane
Readme 279 KiB
Languages
Python 99.9%
Shell 0.1%