6 999
contributi
S3v (discussione | contributi) m (→Changelog) |
S3v (discussione | contributi) (1.0.50) |
||
Riga 73: | Riga 73: | ||
# Versione script | # Versione script | ||
readonly VERSIONE="1.0. | readonly VERSIONE="1.0.50" | ||
# Codename per stable e testing. Da modificare nei successivi rilasci di Debian | # Codename per stable e testing. Da modificare nei successivi rilasci di Debian | ||
Riga 1 046: | Riga 1 046: | ||
function _extpack { | function _extpack { | ||
local riga indirizzo rel linea release="" | |||
# variabile con il contenuto del file sources.list (solo righe che iniziano con deb | |||
# e che contengono "main" ) | |||
local sourceslist="$(sed -e '/^deb /!d' -e '/.* main.*/!d' /etc/apt/sources.list)" | |||
# variabile che contiene l'output del comando "apt-cache policy" | |||
local aptcachepol="$(apt-cache policy)" | |||
# ciclo sulle righe della variabile "sourceslist" | |||
while read linea; do | |||
# variabile che contiene l'URL dell'archivio (es. http://ftp.it.debian.org/debian/) | |||
indirizzo="$(echo "$linea" | awk '{print $2}')" | |||
# sostituisce / con \/ (necessario per il successivo sed) | |||
indirizzo="${indirizzo//\//\\/}" | |||
# release della riga corrente (es. wheezy o testing o sid) | |||
rel="$(echo "$linea" | awk '{print $3}')" | |||
# controlla che sia un nome di release valido | |||
if [ "$rel" = "stable" ] || [ "$rel" = "testing" ] || [ "$rel" = "unstable" ] || | |||
[ "$rel" = "$STABLE" ] || [ "$rel" = "$TESTING" ] || [ "$rel" = "sid" ]; then | |||
# controlla che sia un repository di Debian | |||
# si basa sull'output di "apt-cache policy" e su o=Debian e l=Debian | |||
riga="$(echo "$aptcachepol" | sed -n '/'$indirizzo'.*'$rel'\/main.*Packages$/ {N; /.*o=Debian,.*l=Debian,/p}')" | |||
# se è un archivio valido, aggiorna la variabile "release" | |||
if [ ! -z "$riga" ]; then | |||
if [ -z "$release" ]; then | |||
release="$rel" | |||
else | |||
release="$(printf %b "$release\n$rel")" | |||
fi | |||
fi | |||
fi | |||
done <<< "$sourceslist" | |||
local var="Pacchetti esterni" | |||
_prompt "$var" | |||
# Lo script DEVE rilevare almeno una release. Se la variabile "release" è nulla, c'è un errore nei in "sources.list" | |||
# oppure non è stato eseguito un aggiornamento della lista dei pacchetti (update) | |||
# (vedere anche il modo in cui viene ricavata la variabile "release" in alto) | |||
if [ -z "$release" ]; then | |||
nome_e_riga "${var} all'archivio \"NON RILEVATO!\"" | nome_e_riga "${var} all'archivio \"NON RILEVATO!\"" | ||
echo "Release non rilevata. Repository errati oppure è necessaria una modifica dello script" >> "$log" && _error | echo "Release non rilevata. Repository errati oppure è necessaria una modifica dello script" >> "$log" && _error | ||
return 1 | return 1 | ||
fi | |||
# Numero di release trovate | |||
local num=$(echo "$release" | wc -l) | |||
# Se il numero di release è diverso da 1, la funzione termina | |||
if [ "$num" -ne 1 ]; then | |||
nome_e_riga "$var" | |||
echo "Sono presenti ${num} release in sources.list" >> "$log" && _error | |||
return | |||
fi | |||
local pkg="" | |||
# Se il numero di release è uguale a 1, la variabile pkg conterrà i pacchetti *non* facenti parte della release | |||
case "$release" in | |||
"$STABLE"|stable) | |||
release="stable" | |||
pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Astable' --disable-columns | column -t) ;; | |||
"$TESTING"|testing) | |||
release="testing" | |||
pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Atesting' --disable-columns | column -t) ;; | |||
sid|unstable) | |||
release="unstable" | |||
pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aunstable' --disable-columns | column -t) ;; | |||
esac | |||
# Invia al log il contenuto di pkg (se esiste) | |||
nome_e_riga "${var} all'archivio \"${release}\"" | |||
if [ -z "$pkg" ]; then | |||
echo "Nessun pacchetto esterno installato" >> "$log" && _error | echo "Nessun pacchetto esterno installato" >> "$log" && _error | ||
else | |||
echo "$pkg" >> "$log" && _ok | echo "$pkg" >> "$log" && _ok | ||
fi | |||
} | } | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
Riga 1 120: | Riga 1 152: | ||
== Changelog == | == Changelog == | ||
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) --> | <!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) --> | ||
;1.0.50 | |||
:''Rivista la funzione _extpack (repository Debian'' | |||
:''in base al comando "apt-cache policy"'' | |||
:[[Utente:S3v|S3v]] 22:37, 22 dic 2014 (CET) | |||
;1.0.49 | ;1.0.49 | ||
:''Aggiunti trap INT e "dpkg-foreign-architectures"'' | :''Aggiunti trap INT e "dpkg-foreign-architectures"'' |
contributi