Script Licenze
Caso mai aveste bisogno di aggiungere una licenza (magari libera) all'intestazione dei file sorgenti del vostro programma, questo script bash è ciò che fa per voi! Il seguente script è stato realizzato su un sistema Ubuntu 10.04 LTS x86_64.
Utilizzo
Innanzitutto bisogna sapere che lo script è privo di qualsiasi controllo di base, perciò inserite esattamente ciò che è richiesto. Il seguente script accetta 3 parametri:
- <cartella> : cartella contenente i file sorgente
- <licenza> : file contenente la licenza da applicare ai file
- <estensione> : estensione dei file a cui applicare la licenza.
Esempio : sh license.sh /usr/src/ GNU_GPL_V3 c
In questo modo andrà a inserire il contenuto di "GNU_GPL_V3" all'inizio di ogni file con estensione ".c" appartenente alla cartella "/usr/bin".
Funzionamento
Per ogni file viene creato un file temporaneo chiamato "swap.tmp" direttamente nella cartella "/tmp/". Al suo interno verrà salvata prima la licenza e poi, in modalità "append" (ossia accodato), il contenuto dell'attuale file che sta scansionando. Infine il file scansionato verrà aggiornato col nuovo contenuto e il file temporaneo verrà rimosso.
Sorgente
#!/bin/sh ############################################################################### # Autore : Vincenzo Ferrari # # Data : 27/08/2010 # # Licenza : Creative Commons BY - NC - SA Ver. 3.0 # # Email : wilk3ert <at> gmail <dot> com # # Sito Web : http://www.wilky.it/ # # Info Licenza : http://creativecommons.org/licenses/by-nc-sa/3.0/ # ############################################################################### # Attuale cartella di lavoro curDir=`pwd` cd $1 # Scansione ricorsiva dei file aventi come estensione quella passata per parametro for file in `find . -iname *.$3` do # Inserimento della licenza nel file temporaneo swap.tmp cat $curDir/$2 > /tmp/swap.tmp # Aggiunta del testo del file cat $file >> /tmp/swap.tmp # Aggiornamento finale del file cat /tmp/swap.tmp > $file rm -f /tmp/swap.tmp done