# RV Launcher `rv-launcher` jest narzedziem do pracy z workspace RISC-V. Wlasciwym skryptem CLI jest wykonywalny plik `rvctl.py`; to on implementuje listowanie serii i kart, obsluge tokenow, przygotowanie repo odpowiedzi i start kontenera. Publicznym entrypointem dla uzytkownika jest krotki wrapper: ```bash ./rvctl ``` Wrapper uruchamia `python3 rvctl.py "$@"`. `rvctl.py` mozna tez uruchomic bezposrednio: ```bash ./rvctl.py ``` Sciezki i domyslne ustawienia sa trzymane w `workspace.json`. ## Co robi narzedzie CLI porzadkuje prace w trzech obszarach. 1. Zarzadzanie tokenami Narzedzie obsluguje lokalny store `tokens/tokens.json`, porownuje go z git remotes i potrafi synchronizowac token w obie strony. Szczegoly modelu, format pliku i opis komend sa w `doc/tokens.md`. 2. Listowanie i pobieranie kart pracy `rvctl.py` czyta serie i karty z workspace, pomaga wybrac material do pracy oraz przygotowuje remotes potrzebne do repo odpowiedzi. Szczegoly komend `list-series`, `list-cards` i `submission` sa w `doc/rvctl.md`. 3. Uruchamianie srodowiska programistycznego w kontenerach Dla wybranej karty `rvctl.py` uruchamia sesje tmux i kontener z przygotowanym srodowiskiem developerskim. Szczegoly komendy `tmux-container` sa w `doc/rvctl.md`. ## Model katalogow Repozytoria zrodlowe trzymamy poza workspace: ```bash ~/dev/edu/repos/rv ``` Workspace sluzy do klonow roboczych, cwiczen, tokenow i socketow: ```bash ~/dev/workspace/rv ``` Typowy uklad: ```text ~/dev/edu/repos/rv/rv-launcher ~/dev/edu/repos/rv/rv32i-hazard3-env ~/dev/edu/repos/rv/series// ~/dev/workspace/rv/tools/rv-launcher ~/dev/workspace/rv/tools/rv32i-hazard3-env ~/dev/workspace/rv/series// ~/dev/workspace/rv/tokens/tokens.json ``` `rvctl.py` pracuje na kartach z `series_root` w workspace. Repo zrodlowe w `~/dev/edu/repos/rv` sa punktem odniesienia i fallbackiem dla narzedzi. ## Szybki start Najpierw zobacz konfiguracje i dostepne komendy: ```bash ./rvctl ./rvctl show-config ``` Typowy przeplyw pracy: ```bash ./rvctl tokens scan ./rvctl list-series ./rvctl list-cards inf ./rvctl tmux-container inf 03 --dry-run ./rvctl tmux-container inf 03 --session rv-inf03 --attach ./rvctl submission inf 03 --class 4i --nick u1 ``` `--dry-run` jest przydatny przy sprawdzaniu planu uruchomienia lub konfiguracji repo, zanim narzedzie cos zmieni. ## Dokumentacja - `doc/rvctl.md` - komendy CLI, przelaczniki i przyklady uzycia - `doc/tokens.md` - model tokenow, synchronizacja remote <-> store - `doc/tokens.schema.json` - schemat `tokens/tokens.json` - `doc/workspace.md` - krotki opis konfiguracji workspace README jest tylko mapa projektu. Szczegoly operacyjne trzymamy w `doc/`, zeby nie dublowac instrukcji w kilku miejscach.