# Scripts RBS

CLI thống nhất: `./scripts/lm.sh <nhóm> <lệnh>`

## Cấu trúc

```
scripts/
├── lm.sh              # entry point
├── lib/
│   ├── common.sh      # LM_ROOT, wait_for_health, free_port
│   ├── docker.sh      # docker_cmd, require_container
│   └── bench.sh       # bench_http_suite
├── test/
│   ├── run.sh         # GTest + smoke + pytest (server tạm :18080)
│   └── smoke.sh       # API smoke (curl)
├── docker/
│   ├── up.sh down.sh stats.sh htop.sh shell.sh
│   ├── bench.sh       # stats + HTTP latency trong container
│   └── test.sh        # up + smoke + pytest trên :8080
└── bench/
    └── http.sh        # đo latency (local hoặc URL tùy chọn)
```

## Lệnh thường dùng

| Mục đích | Lệnh |
|----------|------|
| Test đầy đủ (local) | `./scripts/lm.sh test run` |
| API smoke | `./scripts/lm.sh test smoke [url]` |
| Docker up | `./scripts/lm.sh docker up` |
| Test trên container | `./scripts/lm.sh docker test` |
| Benchmark HTTP | `./scripts/lm.sh bench http [url]` |

## Biến môi trường

| Biến | Mặc định | Ý nghĩa |
|------|----------|---------|
| `LM_URL` | `http://127.0.0.1:8080` | URL container |
| `LM_TEST_PORT` | `18080` | Port server tạm khi `test run` |
| `LM_CONTAINER` | `lidar-manager-limited` | Tên container |
| `TEST_BASE_URL` | — | Base URL cho pytest |
| `BENCH_REQUESTS` | `100` | Số request mỗi endpoint benchmark |
