#!/bin/sh

size=0
result=0
unit="Mo"
check_space()
{
    pkgs=$(cat "$UP_LIST")
    
    all_pkgs="$pkgs"
    for pkg in $pkgs; do
        deps=$(awk -F'\t' -v p="$pkg" '$1 == p {print $8}' /var/lib/tazpkg/packages.info)
        for dep in $deps; do
            [ ! -d /var/lib/tazpkg/installed/$dep ] && all_pkgs="$all_pkgs $dep"
        done
    done
    result=$(echo "$all_pkgs" | tr ' ' '\n' | sort -u | \
        awk -F'\t' 'NR==FNR {pkgs[$1]=1; next} $1 in pkgs {print $7}' - /var/lib/tazpkg/packages.info | \
        awk '
        {
            split($0, a, " ")
            for (i in a) {
                v = a[i]
                if (v ~ /K$/) { sub(/K$/,"",v); total += v / 1024 }
                else if (v ~ /G$/) { sub(/G$/,"",v); total += v * 1024 }
                else { sub(/M$/,"",v); total += v }
            }
        }
        END { print total }')
    if $(echo $result | awk '{print ($1 > 1024) ? "true" : "false"}'); then
        result=$(awk "BEGIN {print $result / 1024; exit}")
        unit="Go"
    fi
    echo "$(LC_ALL=C printf '%0.2f' $result) $unit"
}