Utente:Jango: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(12 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
== Presentazione ==
=Contatti=
; e-mail : [http://www.sailence.com/jango/?page_id=4 e-m@il me!]
; www : [http://www.sailence.com/jango Visita il mio blog!]
; coordinate : [http://www.casale.cc/wallpapers/gifs%5Cc21126_foce.jpg 44°23'20" N 08°56'25" E]


Questo script bash confronta due file di configurazione del kernel e stampa
=Su questo Wiki:=
le voci che contengono una determinata stringa che siano settate (o non settate) nel primo e settate (o non settate) nel secondo.


Pu� essere utile per individuare quali voci mancano in un kernel ricompilato ripetto ad un kernel binario debian, in una particolare sezione del kernel.
==Guide:==
# [[Associare ad Icedove il browser preferito]]
# [[Associare a Thunderbird il browser preferito]]
# [[Old:Associare un pulsante ad un'azione: Hotkeys|Old:Associare un pulsante ad un'azione: '''Hotkeys''']]
# [[Cambiare il Tema dei Cursori per il Mouse ]]
# [[Debian e iPod]]
# [[Debian on an HP pavilion zv5422EA]]
# [[NdisWrapper]]
# [[Xfce e shutdown da utente]]


== Sintassi ==
==Contributi:==
Lo script va lanciato nel seguate modo (supponendo di averlo chiamato <tt>ker-conf</tt>):
[[Speciale:Contributions/jango|Clikka Qui]]


  ker-conf config-1 config-2 stringa [s|n] [s|n]
==Discussioni:==
[[Discussioni_utente:jango|Clikka Qui]]


I primi due parametri sono i due file di configurazione del kernel da confrontare. Il terzo parametro � la stringa che deve essere contenuta nelle voci di configurazione di entrambi i kernel (solo questo sotto-insieme viene confrontato).    La stringa di ricerca � ''case-insensitive'', valori di esempio sono: scsi, usb,
----
acpi, '*', ecc...
; Imagination is more important than Knowledge...
 
Gli ultimi due parametri (opzionali) possono essere solo 's' o 'n' (settato o non
settato) e si riferiscono rispettivamente allo stato di config-1 e config-2.
Se gli ultimi due parametri vengono omessi viene usato il default: n s.
 
Quando l'ultimo parametro � s (e' il default se non specificato) le voci
sono stampate con lo stato (<tt>=y</tt> oppure <tt>=m</tt>) del secondo config.
 
Per una breve decrizione del funzionamento dello script, basta lanciarlo senza alcun parametro.
 
 
== Script ==
 
<pre>
#!/bin/bash
#
#  ckc - Confronta Kernel Config
#  Versione: 0.0.3
#
#  Copyright (C) 2005 - Davide Natalini <tindal@katamail.com>
#                      Antonio Ingargiola <debian@fastwebnet.it>
#
#  Released under the GNU GENERAL PUBLIC LICENSE.
#
 
usage() {
echo -e "\n  *** Errore: Parametri non corretti.\n"
echo -e "  USO: \n"
echo -e "  ${0##*/} config-1 config-2 stringa [s|n] [s|n]\n"
echo -e "  Lo script ${0##*/} confronta due file di configurazione del kernel e stampa"
echo -e "  le voci che contengono 'stringa' che siano settate (o non settate) nel primo"
echo -e "  e settate (o non settate) nel secondo.\n"
echo -e "  Gli ultimi due parametri possono essere solo 's' o 'n' (settato o non"
echo -e "  settato) e si riferiscono rispettivamente allo stato di config-1 e config-2."
echo -e "  Se gli ultimi due parametri vengono omessi viene usato il default: n s. \n"
echo -e "  Quando l'ultimo parametro e' s (e' il default se non specificato) le voci"
echo -e "  sono stampate con lo stato (built-in o modulo) del secondo config.\n"
exit 1
}
 
filter () {
FILE=$1; STATUS=$2
BOOL=''; EXP='^ *$'; [ "$STATUS" = "s" ] && BOOL="-v" || EXP='=|is not set'
SED_EXP='s/\(# \)\?\([0-9a-zA-Z_]\+\)\(=.\)\?.*/\2\3/'
egrep $BOOL '^#' "$FILE" | egrep $BOOL "$EXP" | egrep -i "$PAR" | sed "$SED_EXP"
}
[ $# -lt 3 ] || [ $# -gt 5 ] && usage
 
NEW_CONFIG=$1;  REF_CONFIG=$2;  PAR=$3
 
STATUS_NEW=${4-n}; STATUS_REF=${5-s}
for S in $STATUS_NEW $STATUS_REF; do [ "$S" = "s" ] || [ "$S" = "n" ] || usage; done
 
TMP_FILE_NEW="/tmp/${0##*/}-new.tmp"
TMP_FILE_REF="/tmp/${0##*/}-ref.tmp"
ON_EXIT="rm -f $TMP_FILE_NEW $TMP_FILE_REF"
 
trap "$ON_EXIT" 0 15
 
filter $REF_CONFIG $STATUS_REF > $TMP_FILE_REF
filter $NEW_CONFIG $STATUS_NEW > $TMP_FILE_NEW
 
for LINE_NEW in $( cat $TMP_FILE_NEW )
do
egrep "${LINE_NEW/%=[ymn]/}(=[ymn])?$" $TMP_FILE_REF
done
 
exit 0
</pre>

Versione attuale delle 11:31, 15 mag 2016