Ho appena aggiornato lo script e l'ho inviato a Loris. Mi quoto il post precedente per rispecchiare la modifica. In pratica ho separato la modalità dalle opzioni...capirete meglio se leggete lo script. Non l'ho testato approfonditamente (mi fido troppo delle mie capacità
), quindi prendetelo ancora di più con le pinze e....è ovvio che
NON lo dovete eseguire come root, non che faccia chissà che, ma è sempre meglio evitare.
Aggiungo solo che lo script è pensato per essere eseguito su più directory contemporaneamente, in questo modo potete eseguire il check passandogli tutte le direcotry che si vogliono, anche '*', per tenere d'occhio tutti i progetti (magari con cron
).
---
Lo script ha delle "modalità" di utilizzo, per ogni modalità esistono delle opzioni associate. L'idea è che si ha un albero di directory, chiamiamolo software, in cui all'interno c'è una directory per ogni progetto che noi seguiamo, quindi ad esempio:
Per usare lo script bisogna:
- individuare la pagina che in cui viene pubblicato l'annuncio del rilascio (magari con un link ai sorgenti)
- eseguire lo script con "modalità" 'init' e parametri: 'directory del progetto' 'link trovato al punto precedente'
Lo script quindi creerà una sottodirectory nascosta nella directory del progetto e vi copierà la pagina indicatagli nel link. A questo punto potete tracciare il progetto semplicemente invocando lo script con modalità 'check' e parametro 'directory progetto'.
Ad esempio per FileZilla:
Ed ecco che lo script crea la sottodirectory FileZilla/.check_upgrade con all'interno due file:
il primo è la pagina scaricata e il secondo file contiene il link '
http://filezilla-project.org/download.php?type=client'. Se io ora invocassi:
lo script riscaricherebbe la pagina in un file temporaneo ed eseguirebbe il comando 'diff' tra del due pagine (quella appena scaricata e quella in FileZilla/.check_upgrade/page). Se 'diff' ritorna che ci sono differenze, me lo segnala.
Grazie ad una serie di filtri, possiamo eseguire 'diff' solo su una porzione della pagina. I filtri sono rappresentati da file, o meglio, ci sono file particolari che rappresentano filtri particolari, sempre per l'esempio su citato io ho il file:
che contiene l'espressione regolare:
allora lo script, prima di eseguire 'diff', filtra solo le righe che matchano l'espressione regolare che gli ho passato.
Questo è quanto, ci sono vari flag per le varie modalità che non sto qui a spiegare, ma ora avete le basi per utilizzarlo e per capire il codice.
Buon lavoro,
Spina