Tool Bash per installare tooling e dipendenze in modo dichiarativo.
Go to file
Guido Longoni 3efc5e6d61 Rendi installazioni non interattive e sistema pyenv 2026-02-06 20:10:50 +01:00
featlib Rendi installazioni non interattive e sistema pyenv 2026-02-06 20:10:50 +01:00
.gitignore Primo abbozzo. Ancora molta strada da fare 2019-12-27 03:20:51 +01:00
AGENTS.md aggiornamenti installazione e README 2026-01-22 14:04:47 +01:00
README.md aggiornamenti installazione e README 2026-01-22 14:04:47 +01:00
grezzo.sh Rendi installazioni non interattive e sistema pyenv 2026-02-06 20:10:50 +01:00
node_pip_docker_rust.sh rivisto scrip esempio 2024-08-05 01:08:10 +02:00
python.sh avevo dimenticato di rendere eseguibile 2022-09-15 11:44:51 +02:00

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_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:

#! /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, 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.