aggiornamenti installazione e README

This commit is contained in:
2026-01-22 14:04:47 +01:00
parent 1a4423ed0d
commit 6bd9f6427b
7 changed files with 140 additions and 12 deletions
Executable → Regular
+56 -1
View File
@@ -1,3 +1,58 @@
# grezzo
Vedremo man mano che cos'è... Per ora è un tool di supporto all'installazione di librerie e al deployment di software
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_needed` e gli installer `feat_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 e `feat_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:
```bash
#! /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
bash my-setup.sh
```
## Convenzioni
- `feat_needed <cmd>`: se il comando non esiste, invoca `feat_add_<cmd>`.
- `feat_add_<cmd>`: implementa linstallazione (puo' includere dipendenze imperative).
- `*_feat_needed <pkg>`: wrapper per package manager specifici (pip, npm, poetry).
## Note importanti
- Alcuni installer modificano `$HOME/.bashrc.before` e lo includono in `~/.bashrc`.
- Molti installer usano `sudo` e 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.