#!/bin/bash

#-----------------------------------------------------------------------
# la directory di partenza deve essere quella da cui si diramano le
# directory 1/ e 2/
#-----------------------------------------------------------------------
INIZIO=`pwd`

#-----------------------------------------------------------------------
# Definisce il contenuto dei file debian/.disk/info
# ATTENZIONE! IL FILE .disk/info  obbligatorio per dselect!!!
#-----------------------------------------------------------------------
DISTRIBUZIONE=`cat $INIZIO/DIST`
DATA=`date "+%Y.%m.%d %H:%M"`
echo "$DISTRIBUZIONE $DATA - supporto 1 di 2" > 1/debian/.disk/info
echo "$DISTRIBUZIONE $DATA - supporto 2 di 2" > 2/debian/.disk/info

#-----------------------------------------------------------------------
# Carica il nome che identifica i supporti.
# ATTENZIONE! IL FILE .disk/info  obbligatorio per dselect!!!
#-----------------------------------------------------------------------
SUPPORTO1=`cat 1/debian/.disk/info`
SUPPORTO2=`cat 2/debian/.disk/info`

#-----------------------------------------------------------------------
# Crea, o svuota, il file usato per memorizzare i messaggi di errore.
#-----------------------------------------------------------------------
echo > messaggi-di-errore

#------------------------------------------------------------------
# Dichiara la funzione che esegue le operazioni ripetitive sulle
# varie sezioni della distribuzione.
#------------------------------------------------------------------
function elabora_sezione () {
    SEZIONE="$1"

    echo "$SUPPORTO1 --> $SEZIONE"

    cd $INIZIO/1/debian/dists/stable/$SEZIONE/binary-i386
    $INIZIO/debian-doppi	>> $INIZIO/messaggi-di-errore

    cd $INIZIO/1/debian/dists/stable/$SEZIONE/binary-i386
    $INIZIO/debian-nomi		>> $INIZIO/messaggi-di-errore

    cd $INIZIO/1/debian/dists/stable/$SEZIONE/binary-i386
    $INIZIO/debian-doppi	>> $INIZIO/messaggi-di-errore

    cd $INIZIO/1/debian
    dpkg-scanpackages 					\
	-m "$SUPPORTO1"					\
	dists/stable/$SEZIONE/binary-i386		\
	indices/override.gz				\
	> dists/stable/$SEZIONE/binary-i386/Packages	\
	2>> $INIZIO/messaggi-di-errore

    cat dists/stable/$SEZIONE/binary-i386/Packages	\
	| gzip -9					\
	> dists/stable/$SEZIONE/binary-i386/Packages.gz

    echo "$SUPPORTO2 --> $SEZIONE"

    cd $INIZIO/2/debian/dists/stable/$SEZIONE/binary-i386
    $INIZIO/elimina-debian-doppi

    cd $INIZIO/2/debian
    dpkg-scanpackages 					\
	-m "$SUPPORTO2"					\
	dists/stable/$SEZIONE/binary-i386		\
	indices/override.gz				\
	> dists/stable/$SEZIONE/binary-i386/Packages	\
	2>> $INIZIO/messaggi-di-errore

    cat dists/stable/$SEZIONE/binary-i386/Packages	\
	| gzip -9					\
	> dists/stable/$SEZIONE/binary-i386/Packages.gz

    cd $INIZIO

    cat								\
	1/debian/dists/stable/$SEZIONE/binary-i386/Packages	\
	2/debian/dists/stable/$SEZIONE/binary-i386/Packages	\
	> 1/debian/dists/stable/$SEZIONE/binary-i386/Packages.cd

    cat								\
	1/debian/dists/stable/$SEZIONE/binary-i386/Packages	\
	2/debian/dists/stable/$SEZIONE/binary-i386/Packages	\
	> 2/debian/dists/stable/$SEZIONE/binary-i386/Packages.cd

    cd $INIZIO/1/debian/dists/stable/$SEZIONE/binary-i386
    cat Packages.cd | gzip -9 > Packages.cd.gz

    cd $INIZIO/2/debian/dists/stable/$SEZIONE/binary-i386
    cat Packages.cd | gzip -9 > Packages.cd.gz

    cd $INIZIO
}

cd $INIZIO

#-----------------------------------------------------------------------
# Inizia il programma.
#-----------------------------------------------------------------------

elabora_sezione main
elabora_sezione contrib
elabora_sezione local
elabora_sezione non-US
elabora_sezione non-free

#-----------------------------------------------------------------------
# Elimina tutti i collegamenti simbolici.
#-----------------------------------------------------------------------
cd $INIZIO
rm -fr $INIZIO/.deb
rm -fr $INIZIO/1/debian/.deb
rm -fr $INIZIO/2/debian/.deb


#-----------------------------------------------------------------------
# Crea un riassunto di tutti i pacchetti nelle directory .deb/,
# utilizzando collegamenti simbolici.
#-----------------------------------------------------------------------
cd $INIZIO

echo collegamenti simbolici globali .deb/

mkdir .deb
cd .deb

ELENCO=`find ../1 -name \*.deb -print`

for PACCHETTO in $ELENCO;
do
    ln -s $PACCHETTO `basename $PACCHETTO`	\
	2>> $INIZIO/messaggi-di-errore
    echo -n "."
done

ELENCO=`find ../2 -name \*.deb -print`

for PACCHETTO in $ELENCO;
do
    ln -s $PACCHETTO `basename $PACCHETTO`	\
	2>> $INIZIO/messaggi-di-errore
    echo -n "."
done

echo

cd $INIZIO/1/debian

echo collegamenti simbolici nel primo CD

mkdir .deb
cd .deb

ELENCO=`find ../dists -name \*.deb -print`

for PACCHETTO in $ELENCO;
do
    ln -s $PACCHETTO `basename $PACCHETTO`	\
	2>> $INIZIO/messaggi-di-errore
    echo -n "."
done

echo

cd $INIZIO/2/debian

echo collegamenti simbolici nel secondo CD

mkdir .deb
cd .deb

ELENCO=`find ../dists -name \*.deb -print`

for PACCHETTO in $ELENCO;
do
    ln -s $PACCHETTO `basename $PACCHETTO`	\
	2>> $INIZIO/messaggi-di-errore
    echo -n "."
done

echo


cd $INIZIO

#-----------------------------------------------------------------------
