43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
---
|
|
description: Check project prerequisites, offer to install missing tools, and configure git hooks.
|
|
---
|
|
|
|
## User Input
|
|
|
|
```text
|
|
$ARGUMENTS
|
|
```
|
|
|
|
You **MUST** consider the user input before proceeding (if not empty).
|
|
|
|
## Outline
|
|
|
|
1. Read the `README.md` to understand the project's requirements.
|
|
2. Check if the following tools are installed and report their status:
|
|
- **Just** task runner — run `just --version`
|
|
- **Java JDK 25** — run `java --version`
|
|
- **Maven** (or `mvnw` wrapper) — run `./mvnw --version` from `etl/`
|
|
- **Node.js 22+** — run `node --version`
|
|
- **pnpm** — run `pnpm --version`
|
|
- **Python 3.x** — run `python3 --version` or `python --version`
|
|
- **uv** (Python package manager) — run `uv --version`
|
|
- **pre-commit** — run `pre-commit --version`
|
|
- **commitizen** — run `cz version`
|
|
- **Podman** (or Docker) — run `podman --version` or `docker --version`
|
|
- **docker-compose** — run `docker-compose --version`
|
|
3. Present a summary table to the user showing each tool, its required version, and whether it is installed (with detected version) or missing.
|
|
4. For any missing tools, suggest installation commands but do NOT install them without the user's approval.
|
|
5. After the user has confirmed prerequisites are met, run the setup:
|
|
- Run `just setup` to install commitizen and pre-commit globally and configure git hooks.
|
|
- If `just` is not available, run the equivalent commands manually:
|
|
- `pnpm install -g commitizen`
|
|
- `pnpm install -g pre-commit`
|
|
- `pre-commit install`
|
|
- `pre-commit install --hook-type commit-msg`
|
|
- `pre-commit install --hook-type pre-push`
|
|
6. Verify hooks are installed:
|
|
- Check that `.git/hooks/pre-commit` exists
|
|
- Check that `.git/hooks/commit-msg` exists (required for commitizen conventional commit validation)
|
|
- Check that `.git/hooks/pre-push` exists
|
|
7. Report the setup result to the user.
|