mkhint
attivoGestisce gli hint file di slackrepo: aggiorna versioni, ricalcola i checksum, segue i rilasci upstream.
mkhint è un singolo script Bash che elimina la noia di mantenere gli hint file di slackrepo. Un hint file sovrascrive i dettagli di build di un pacchetto SBo: quale versione compilare, da dove scaricare i sorgenti e i checksum con cui verificarli. Tenerli allineati a mano, su decine di pacchetti, è esattamente il tipo di lavoro ripetitivo che dovrebbe spettare a uno script.
Cosa fa
- Aggiorna un hint
-f package -v 2.0.1: porta la versione ovunque nel file, riscarica i sorgenti daDOWNLOAD/DOWNLOAD_x86_64e ricalcolaMD5SUM/MD5SUM_x86_64. Il file precedente viene salvato in.bak. - Crea un hint
-n package: genera un nuovo hint dal.infocorrispondente nel repository, rimuovendo i campi che slackrepo non vuole e impostandoARCHax86_64. Senza.info, scrive uno scheletro vuoto. - Elenco
-l: stampa ogni hint con il suoHintVer(versione nell’hint) accanto alSBOVer(versione nel.infodel repository), evidenziando le righe in cui i due valori coincidono byte per byte, così individui gli hint ormai ridondanti rispetto all’upstream. - Revisione
-R: scorre solo gli hint evidenziati, mostrando ciascuno affiancato al suo.info(git diff --no-index, con ripiego sudiff -y) e chiedendo se tenere, cancellare o saltare. - Controllo
-C [package...]: interroga nvchecker per l’ultima versione upstream di uno, alcuni o tutti gli hint; segnala cosa è obsoleto; aggiorna i pacchetti accettati connvtake; e termina con un unico promptslackrepo updateper tutto ciò che è cambiato. - Manutenzione
-d package/-c: cancella un hint e il suo backup, oppure rimuove tutti i.bakdalla directory degli hint in un colpo solo.
Riferimento dei comandi
|
|
Come funziona
mkhint è puro Bash con tre piccole dipendenze, ciascuna con un compito solo:
wgetscarica gli archivi per calcolarne l’MD5,nvchecker(e il suo compagnonvtake) segue le versioni upstream,jqanalizza l’output JSON di nvchecker.
Tutto il resto è shell. I percorsi del repository e della directory degli hint
sono due variabili in cima allo script. Il file di bash-completion li rispecchia,
così -f, -n, -d e -C completano i nomi dei pacchetti dalla directory
giusta, e -v suggerisce persino la versione corrente letta direttamente
dall’hint file indicato.
Le voci DOWNLOAD multiriga (un pacchetto con più URL sorgente) sono gestite
con cura: il primo URL viene sempre riscaricato perché la versione è cambiata,
mentre ogni URL di continuazione viene proposto in modo interattivo, così i
sorgenti invariati conservano il checksum esistente invece di essere riscaricati
inutilmente.
Perché esiste
Mantenere un overlay SBo personale significa un flusso costante di aggiornamenti
di versione. Ogni volta la stessa danza: modificare la stringa di versione,
scaricare il nuovo tarball, ricalcolare il checksum, sperare di non aver sbagliato
una cifra. mkhint riduce quella danza a un comando, e il trio --check /
--list / --review trasforma “quali dei miei hint sono ormai obsoleti o
inutili?” da audit manuale a un’occhiata. È il tipo di strumento piccolo e
affilato che Slackware incoraggia: niente demone, niente database, niente
framework, solo uno script che fa bene un lavoro noioso.
Avvio rapido
|
|
Modifica i percorsi REPO_DIR e HINT_DIR in cima allo script (e nel file di
completion) per adattarli alla tua configurazione prima del primo utilizzo.
Spero ti sia utile. Se mantieni un tuo overlay slackrepo, mkhint potrebbe risparmiarti la stessa noia che risparmia a me. Patch e idee sono benvenute.
Sfoglia il sorgente