grezzo/AGENTS.md

2.1 KiB

Repository Guidelines

Project Structure & Module Organization

  • grezzo.sh is the core library with shared helpers (e.g., feat_needed, feat_missing).
  • featlib/ contains feature installers, one tool per file (pip.sh, docker.sh, npm.sh, rustup.sh, curl.sh).
  • featlib/poetry/ holds Poetry-specific feature scripts (e.g., django.sh).
  • Entry-point scripts live at the repo root (e.g., python.sh, node_pip_docker_rust.sh).

Build, Test, and Development Commands

There is no build system; scripts are executed directly from the repo root.

  • bash python.sh installs Python tooling via pip/pyenv.
  • bash node_pip_docker_rust.sh installs Node, Pip/Poetry, Docker, and Rust tooling.
  • bash grezzo.sh can be sourced by other scripts; it is not meant to be run standalone.

These scripts may call sudo and can modify shell configuration files (e.g., $HOME/.bashrc.before).

Coding Style & Naming Conventions

  • Language: Bash; keep the #! /bin/bash -- shebang.
  • Indentation: prefer 4 spaces (match existing files).
  • Functions follow the pattern feat_add_*, feat_needed, and *_feat_needed.
  • Use this_script_path to resolve relative includes and avoid cd assumptions.

Testing Guidelines

No automated tests are present. Validate changes by running the relevant script end-to-end on a test machine and confirming installed tools are available (e.g., docker --version, python --version).

Commit & Pull Request Guidelines

  • Commit messages are short, descriptive, and currently in Italian (see git log examples like “aggiornamenti …”, “piccola modifica”).
  • Do not add signatures or personal tags in commit messages.
  • PRs should describe the target platforms (apt/pacman/apk/yum/zypper) and any system changes made (packages installed, files edited, required restarts).
  • Include repro commands and any manual verification performed.

Security & Configuration Tips

  • Scripts can install packages system-wide and add APT repositories/keys; review changes carefully.
  • Prefer testing in a VM or container and document any OS-specific behavior.