wget_download_files(){
    wget --continue --timestamping --no-verbose --no-parent --no-host-directories \
    --recursive --cut-dirs=$cut_dirs --directory-prefix $MIRROR $wget_file_list 
}

mkdir -p $MIRROR

cut_dirs=$(echo -n "$wget_debian_mirror" | sed -e 's:/$::' -e 's://::' -e 's:[^/]::g' | wc -m)

# Download files needed to build debian-installer image
wget_file_list=""
for file in $mirror_files $checksum_files ; do
    wget_file_list="$wget_file_list $wget_debian_mirror/$file"
done

wget_download_files

if [ -n "$checksum_files" ]; then
    # Ensure checksum file is the checksum referenced in Release file
    for file in $checksum_files ; do

        release_file=$simple_cdd_temp/${DI_CODENAME}_Release
        download_release_file=$wget_debian_mirror/dists/${DI_CODENAME}/Release
        wget -O $release_file $download_release_file
        wget -O ${release_file}.gpg ${download_release_file}.gpg
        keyring_arg=""
        for k in ${keyring} ; do
            if [ -f "${k}" ]; then
                keyring_arg="--keyring ${k} $keyring_arg"
            fi
        done
        gpg --no-default-keyring ${keyring_arg} --verify ${release_file}.gpg ${release_file} || exit 1

        echo "Checking checksum file... $file"
        case $file in
            *SHA256SUMS) checksum_tool=sha256sum 
                checksum_field=SHA256 
            ;;
            *MD5SUMS) checksum_tool=md5sum
                checksum_field=MD5SUM
            ;;
        esac
        grep-dctrl --show-field ${checksum_field} --field ${checksum_field} . $release_file | grep $(echo $file | sed -e "s,^dists/${DI_CODENAME}/,,g") | awk '{print $1"  "$3}' | sed -e "s,main/installer,$MIRROR/dists/$DI_CODENAME/main/installer,g" | ${checksum_tool} -c - || exit 1
    done

    # Download additional files listed in the checksums files (SHA256SUM, MD5SUM)
    # for each architecture.
    wget_file_list=""
    for file in $checksum_files ; do
        file_list=$(awk '{print $2}' $MIRROR/$file | grep ${di_match_files} | sed -e "s,^./,$wget_debian_mirror/$(dirname $file)/,g")
        wget_file_list="$wget_file_list $file_list"
    done
    
    wget_download_files
    
    for file in $checksum_files ; do
        # Check downloaded files against their corresponding checksums. 
        case $file in
            *SHA256SUMS) checksum_tool=sha256sum ;;
            *MD5SUMS) checksum_tool=md5sum ;;
        esac
        echo "Checksums for $file:"
        grep ${di_match_files} $MIRROR/$file | sed -e "s, \./, $MIRROR/$(dirname $file)/,g" | ${checksum_tool} -c - || exit 1
    done
fi
