Script Licenze

Da RELug :: Reggio Emilia Linux User Group.
Versione del 29 set 2010 alle 14:19 di Wilk (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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