#!/bin/bash

exithook()
{
    rm -f $TMP $TEMP $BSTMP
}

SHAREDIR=$(cd $(dirname $0) && pwd)
[ -r ${SHAREDIR}/common.sh ] || SHAREDIR=/usr/share/apt-zip
. ${SHAREDIR}/common.sh

# options to take care
[ -z "$APTGETACTION" -a -z "$PACKAGES" ] &&
    eval export APTGETACTION=\${APTGETACTION-${DEFAULT_APTGETACTION}}
[ -n "$APTGETACTION" ] && check_aptgetaction

# Find block size on zip
BSTMP=$(tempfile -d $MEDIUM -p aptzip)
if [ $? != 0 ]
then
    error "Could not create temporary file"
fi

echo "bs test" > $BSTMP
BLOCKSIZE=$(du -b $BSTMP | cut -f1)
rm $BSTMP
#echo >&2 "Block size = $BLOCKSIZE"

TMP=$(tempfile -p aptzip)
TEMP=$(tempfile -p aptzip)

[ -n "$PACKAGES" ] && apt-get ${APTGETEXTRAOPTS} -qq --print-uris install $PACKAGES > $TMP
[ -n "$APTGETACTION" ] && apt-get ${APTGETEXTRAOPTS} -qq --print-uris ${APTGETACTION} >> $TMP
grep $GREP < $TMP | tr -d "'" > $TEMP
if [ $? != 0 ]
then
    error "apt-get failed"
fi

#  SIZE=$(
#      cut -d' ' -f3 <$TMP |
#      {
#  	_SZ=0
#  	while read val
#  	do
#  	    nblocks=$[ ( $val / $BLOCKSIZE ) + 1 ]
#  #	    _SZ=$[ $_SZ + $val ]
#  	    _SZ=$[ $_SZ + $nblocks ]
#  	done
#  	echo $_SZ
#      }
#  )

# Check requested size against free space
#SIZE0=$(echo 'n' | apt-get ${APTGETEXTRAOPTS} dselect-upgrade | grep '^Need to get' | cut -d' ' -f4)

#error "Size0 = $SIZE0 - Size = $SIZE blocks = $[ $SIZE * $BLOCKSIZE ]"

# Write the script
SCRIPT=${MEDIUM}/fetch-script-$METHOD-$(uname -n)

# --print-uris shows: URI filename size-in-bytes md5
$FILTER < $TEMP >$SCRIPT
if [ $? != 0 ]
then
    echo >&2 "WARNING: an error occured in the $SCRIPT script"
    exit 1
fi
cat > ${MEDIUM}/${APTZIPINSFILE} <<EOF
# This file was auto-generated by apt-zip-list ${APTZIPVERSION}
# to save the state of apt-zip-list
DEF_APTGETEXTRAOPTS="${APTGETEXTRAOPTS}"
DEF_APTGETACTION="${APTGETACTION}"
DEF_PACKAGES="${PACKAGES}"
EOF
