#!/bin/bash

# принудительно ставит пакеты из текущей папки
# если ошибки, (несоответствие версий) повторяет процесс
# использовать с осторожностью

# force install debs from current dir

again=false

reinst(){
all_deb=0
inst_deb=0
for fullname in $(find . -name "*.deb")
do
    all_deb=$((all_deb+1))
    filename=${fullname##*/}
    debname=${filename%%_*}
    if $(dpkg -l | grep -q -E "^ii  $debname[ |:]") ; then
        echo reinstall - $filename
        dpkg -i --force-all $fullname
        if [ $? != 0 ] ; then
            again=true
        fi
        inst_deb=$((inst_deb+1))
    else
        echo skip - $filename
    fi
    echo $inst_deb $all_deb
    echo
done
}

reinst
if [ $again == true ] ; then
    reinst
fi
