SCRIPTING GUIDELINS in Bad Penguin
      @1999 by Antonio GALLO
==================================



Norme e consigli per la stesura di scripts

(1) COPYRIGHT
Applicare la copyright subito dopo la prima riga. Es.:
	#!/bin/sh
	# <BEGIN COPYRIGHT>
	# This program is distributed under the GNU General Public License
	# You are not allowed to remove the copyright notice
	# <END COPYRIGHT>

(2) VERSIONE
Indicare successivamente una breve descrizione dello script e la versione
attuale con relativi cambiamenti. Es.:
	# Automount of the cdrom at boot time, if almost one is present.
	# 1999-10-15, Version 1.2.0 by AGX

(3) TRAPPING
Effettuare il trapping dei file temporanei. Per script generici usare
la directory /tmp, per script di sistema o configurazione usare /root/tmp
invece. Es.:
	TEMPDIR="$HOME/tmp"
	[ ! -d $TEMPDIR ] && mkdir -p $TEMPDIR
	TEMPSCRIPT=$TEMPDIR/tempscript.$$
	TEMPDATA=$TEMPDIR/tempdata.$$
	trap 'rm -f $TEMPSCRIPT $TEMPDATA ; exit $USCITA' 0
	# Settare il return code di USCITA=codice_errore
	# prima di chiamare exit. Es: USCITA=5 ; exit 5

(4) PROFILE
Se utilizzato effettuare il controllo del profilo
	if [ "$PROFILE" = "" ]; then
	  echoc RED "Il profilo non e' settato !"
	  exit 1
	fi

(5) LOCALIZZAZZIONE
Ove ha senso tradurre tutto in italiano

(6) VECCHI SCRIPT
Se trovate all'interno di uno script la sequenza
	return 1 ; exit 1
togliete la voce return.

(7) RESTART
Se un servizio o uno script cambia i file di sistema, questo deve
essere fatto in una procedura chiamata 'initialize' richiamabile
in uno dei seguenti casi:
  1. quando cambia il profilo tra un bott e l'altro (service_check_profile)
  2. invocando lo script con il parametro 'init'
  3. in restart prima di chiamare 'start'

(8) PARSING
Se si effettua il parsing dei file di testo usando la forma
	cat $NOMEFILE | while read LINEA
e meglio aggiungere una riga finale al file secondo il seguente esempio:
	( cat $NOMEFILE ; echo ) | while read linea ; do

Per ora e' tutto, AGX
