#!/bin/sh
##
## debian-nomi
##
## Interviene nella directory *corrente* correggendo i nomi
## degli archivi che sembrano non essere coerenti. Si
## utilizza in particolare:
##
##       dpkg --field <archivio> package
##       dpkg --field <archivio> version
##       dpkg --field <archivio> architecture
##
#
# Inizializza le variabili di ambiente che servono per
# accumulare i valori per il confronto.
#
ARCHIVIO=""
PACCHETTO=""
VERSIONE=""
ARCHITETTURA=""
NOME_CORRETTO=""
#
# Inizia il ciclo di scansione degli archivi Debian che si
# trovano nella directory corrente.
# Prima fase silenziosa.
#
for ARCHIVIO in *.deb
do
    #
    # Se il nome è «*.deb», non ci sono file del genere.
    #
    if [ "$ARCHIVIO" = "*.deb" ]
    then
        #
        # Non si fa nulla.
        #
        exit
    fi
    #
    # Estrae il nome del pacchetto.
    #
    PACCHETTO=`dpkg --field $ARCHIVIO package`
    #
    # Estrae la versione del pacchetto.
    #
    VERSIONE=`dpkg --field $ARCHIVIO version`
    #
    # Estrae la sigla dell'architettura.
    #
    ARCHITETTURA=`dpkg --field $ARCHIVIO architecture`
    #
    # Compone il nome teorico.
    #
    NOME_CORRETTO=\
"${PACCHETTO}_${VERSIONE}_${ARCHITETTURA}.deb"
    #
    # Confronta con il nome dell'archivio.
    #
    if [ "$NOME_CORRETTO" != "$ARCHIVIO" ]
    then
        #
        # I nomi sono differenti.
        # Modifica il nome solo se è possibile.
        #
        echo "n" | mv -i "$ARCHIVIO" "$NOME_CORRETTO" \
            2> /dev/null
    fi
done
#
# Inizia il ciclo di scansione degli archivi Debian che si
# trovano nella directory corrente.
# Seconda fase di verifica.
#
for ARCHIVIO in *.deb
do
    #
    # Estrae il nome del pacchetto.
    #
    PACCHETTO=`dpkg --field $ARCHIVIO package`
    #
    # Estrae la versione del pacchetto.
    #
    VERSIONE=`dpkg --field $ARCHIVIO version`
    #
    # Estrae la sigla dell'architettura.
    #
    ARCHITETTURA=`dpkg --field $ARCHIVIO architecture`
    #
    # Compone il nome teorico.
    #
    NOME_CORRETTO=\
"${PACCHETTO}_${VERSIONE}_${ARCHITETTURA}.deb"
    #
    # Confronta con il nome dell'archivio.
    #
    if [ "$NOME_CORRETTO" != "$ARCHIVIO" ]
    then
        #
        # A quanto pare, il nome di questo archivio non è
        # stato corretto.
        #
        echo "Non è stato possibile correggere il nome"
        echo "dell'archivio $ARCHIVIO, che dovrebbe"
        echo "chiamarsi $NOME_CORRETTO."
        echo
    fi
done
#
