203 lines
3.5 KiB
Markdown
203 lines
3.5 KiB
Markdown
# RV Launcher CLI
|
|
|
|
Plik opisuje przelaczniki i liste komend skryptu `workspace.py`.
|
|
|
|
## Pobranie repo i przelaczenie galezi
|
|
|
|
Jesli trzymasz tool repo pod:
|
|
|
|
```bash
|
|
~/dev/workspace/rv/tools/rv-launcher
|
|
```
|
|
|
|
to podstawowy bootstrap wyglada tak:
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
Jesli w Twoim workspace narzedzia sa poza `rv/`, analogiczny katalog to:
|
|
|
|
```bash
|
|
~/dev/workspace/tools/rv-launcher
|
|
```
|
|
|
|
### Najpierw token
|
|
|
|
Przed operacjami wymagajacymi autoryzacji dodaj lokalny token do:
|
|
|
|
```bash
|
|
~/dev/workspace/rv/tokens/gitea_tokens.json
|
|
```
|
|
|
|
Minimalny format pliku:
|
|
|
|
```json
|
|
{
|
|
"users": {
|
|
"u1": {
|
|
"tokens": {
|
|
"t1": "TU_WSTAW_TOKEN"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ten plik powinien byc lokalny, niewersjonowany i miec prawa `600`.
|
|
|
|
Przyklad:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
git fetch origin main
|
|
git switch main
|
|
git pull --ff-only
|
|
```
|
|
|
|
Jesli chcesz wejsc na inna galaz, na przyklad `feat/x`, uzyj:
|
|
|
|
```bash
|
|
git fetch origin feat/x
|
|
git switch --track -c feat/x origin/feat/x
|
|
```
|
|
|
|
## Wywolanie glowne
|
|
|
|
```bash
|
|
python3 workspace.py [--config PATH] <komenda> [opcje]
|
|
```
|
|
|
|
Globalne przelaczniki:
|
|
|
|
- `--config PATH`
|
|
Uzywa innego pliku `workspace.json`.
|
|
|
|
Komendy:
|
|
|
|
- `show-config`
|
|
- `list-series`
|
|
- `list-cards [series]`
|
|
- `tmux-container [series] [card]`
|
|
|
|
## `show-config`
|
|
|
|
Wypisuje rozwiazane sciezki z konfiguracji.
|
|
|
|
Typowy format:
|
|
|
|
```text
|
|
config_path<TAB>...
|
|
workspace_root<TAB>...
|
|
series_root<TAB>...
|
|
socket_root<TAB>...
|
|
tools_root<TAB>...
|
|
tools_root_candidates
|
|
...
|
|
```
|
|
|
|
Przyklad:
|
|
|
|
```bash
|
|
python3 workspace.py show-config
|
|
```
|
|
|
|
## `list-series`
|
|
|
|
Listuje katalogi serii znalezione w `series_root`.
|
|
|
|
Kazda linia ma format:
|
|
|
|
```text
|
|
<series_id><TAB><liczba_kart><TAB><pelna_sciezka>
|
|
```
|
|
|
|
Przyklad:
|
|
|
|
```bash
|
|
python3 workspace.py list-series
|
|
```
|
|
|
|
## `list-cards [series]`
|
|
|
|
Listuje karty z wybranej serii.
|
|
|
|
Argumenty:
|
|
|
|
- `series`
|
|
Opcjonalne id serii, na przyklad `inf`.
|
|
Jesli go brak, brana jest domyslna seria z `workspace.json`.
|
|
|
|
Format wyjscia:
|
|
|
|
```text
|
|
<card_no><TAB><tytul_z_README><TAB><pelna_sciezka>
|
|
```
|
|
|
|
Jesli `README.md` nie ma naglowka `#`, skrypt wypisuje:
|
|
|
|
```text
|
|
<card_no><TAB><pelna_sciezka>
|
|
```
|
|
|
|
Przyklady:
|
|
|
|
```bash
|
|
python3 workspace.py list-cards
|
|
python3 workspace.py list-cards inf
|
|
```
|
|
|
|
## `tmux-container [series] [card]`
|
|
|
|
Tworzy nowa sesje `tmux` i uruchamia kontener w `pane 0`.
|
|
|
|
Argumenty pozycyjne:
|
|
|
|
- `series`
|
|
Id serii albo pelny selector, na przyklad `inf` albo `inf/03`.
|
|
- `card`
|
|
Numer karty, na przyklad `03`.
|
|
|
|
Przelaczniki:
|
|
|
|
- `--session NAME`
|
|
Nadpisuje nazwe sesji `tmux`.
|
|
- `--window NAME`
|
|
Nadpisuje nazwe okna `tmux`.
|
|
- `--instance NAME`
|
|
Ustawia `RV_INSTANCE` dla wrappera `rv`.
|
|
- `--attach`
|
|
Po utworzeniu sesji robi `tmux attach`.
|
|
- `--dry-run`
|
|
Nie uruchamia `tmux`; wypisuje selector, sciezki i koncowa komende.
|
|
|
|
Reguly wyboru karty:
|
|
|
|
- `tmux-container inf 03` -> seria `inf`, karta `03`
|
|
- `tmux-container inf/03` -> pelny selector
|
|
- `tmux-container 03` -> domyslna seria + karta `03`
|
|
- `tmux-container inf` -> seria `inf` + domyslna karta
|
|
- bez argumentow -> domyslna seria i domyslna karta
|
|
|
|
Przyklady:
|
|
|
|
```bash
|
|
python3 workspace.py tmux-container 03 --dry-run
|
|
python3 workspace.py tmux-container inf 03 --session rv-inf03
|
|
python3 workspace.py tmux-container inf/03 --attach
|
|
```
|