|
|
(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>
| |