|
|
||
|---|---|---|
| featlib | ||
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
| grezzo.sh | ||
| node_pip_docker_rust.sh | ||
| python.sh | ||
README.md
grezzo
Tool Bash per installare e garantire la presenza di tooling di sviluppo in modo dichiarativo: tu dici cosa vuoi, grezzo si occupa di farlo comparire, includendo dipendenze e policy opinionated.
Idee chiave
- Dichiarativo “al top”, imperativo “sotto al cofano”: si usano
feat_needede gli installerfeat_add_*. - Include-once: ogni script in
featlib/si carica una sola volta. - Policy opinionated: priorita' su Mint, Debian, Ubuntu, Arch; poi altri Linux.
Struttura
grezzo.sh: core (helper comuni efeat_needed).featlib/: installer per singole feature (es.pip.sh,docker.sh,npm.sh).featlib/poetry/: estensioni Poetry (es.django.sh).- Script di esempio nella root (es.
python.sh,node_pip_docker_rust.sh).
Come si usa
Scrivi uno script dichiarativo con le feature che vuoi garantire:
#! /bin/bash --
. "grezzo.sh"
. "featlib/npm.sh"
. "featlib/pip.sh"
. "featlib/docker.sh"
. "featlib/rustup.sh"
npm-g_feat_needed "node-red"
pip_feat_needed "poetry"
feat_needed "docker"
feat_needed "rustup"
Esegui lo script dalla root del repository:
bash my-setup.sh
Convenzioni
feat_needed <cmd>: se il comando non esiste, invocafeat_add_<cmd>.feat_add_<cmd>: implementa l’installazione (puo' includere dipendenze imperative).*_feat_needed <pkg>: wrapper per package manager specifici (pip, npm, poetry).
Note importanti
- Alcuni installer modificano
$HOME/.bashrc.beforee lo includono in~/.bashrc. - Molti installer usano
sudoe possono aggiungere repository ufficiali (es. Docker). - Per coerenza con le policy, si preferiscono i repo ufficiali e gli install script upstream.
Stato del progetto
Il progetto e' in evoluzione. Se vuoi aggiungere una nuova feature, crea un nuovo
featlib/<nome>.sh con feat_add_<nome> e aggiornalo secondo le policy correnti.