mirror of
https://github.com/zuno/slackpkgplus
synced 2024-12-27 09:58:34 +01:00
Check disk space to download and install packages.
Add CHECKDISKSPACE=on in slackpkgplus.conf Note: to download it will check $TEMP path (/var/cache/packages by default) to install (and only install, not for upgrade) it will check $ROOT/usr filesystem since MOST (not ALL) files are there.
This commit is contained in:
parent
254f9844cb
commit
2c80c1335b
1 changed files with 42 additions and 0 deletions
|
@ -537,6 +537,10 @@ if [ "$SLACKPKGPLUS" = "on" ];then
|
||||||
function getfile(){
|
function getfile(){
|
||||||
local URLFILE
|
local URLFILE
|
||||||
URLFILE=$1
|
URLFILE=$1
|
||||||
|
PREPO=slackware
|
||||||
|
if [ $(basename $1) = "PACKAGES.TXT" ];then
|
||||||
|
PREPO=$(echo $1|awk -F/ '{print $(NF-1)}')
|
||||||
|
fi
|
||||||
|
|
||||||
if echo $URLFILE|grep -q /SBO_;then
|
if echo $URLFILE|grep -q /SBO_;then
|
||||||
local PRGNAM
|
local PRGNAM
|
||||||
|
@ -689,6 +693,10 @@ if [ "$SLACKPKGPLUS" = "on" ];then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $(basename $1) = "PACKAGES.TXT" ];then
|
||||||
|
sed -i -e "1i===== START REPO: $PREPO : URL:$1 =====" -e "\$a===== END REPO: $PREPO =====" $2
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $(basename $1) = "CHECKSUMS.md5.asc" -a ! -e $TMPDIR/signaturedownloaded ];then
|
if [ $(basename $1) = "CHECKSUMS.md5.asc" -a ! -e $TMPDIR/signaturedownloaded ];then
|
||||||
mv ${TMPDIR}/CHECKSUMS.md5.asc ${TMPDIR}/CHECKSUMS.md5-slackware.asc
|
mv ${TMPDIR}/CHECKSUMS.md5.asc ${TMPDIR}/CHECKSUMS.md5-slackware.asc
|
||||||
cp ${TMPDIR}/CHECKSUMS.md5-slackware.asc ${TMPDIR}/CHECKSUMS.md5.asc
|
cp ${TMPDIR}/CHECKSUMS.md5-slackware.asc ${TMPDIR}/CHECKSUMS.md5.asc
|
||||||
|
@ -1788,6 +1796,40 @@ if [ "$SLACKPKGPLUS" = "on" ];then
|
||||||
echo "No packages selected for $2, exiting."
|
echo "No packages selected for $2, exiting."
|
||||||
cleanup
|
cleanup
|
||||||
fi
|
fi
|
||||||
|
if [ "$2" != "remove" -a "$CHECKDISKSPACE" == "on" ];then
|
||||||
|
COUNTLIST=$(echo $SHOWLIST|wc -w)
|
||||||
|
compressed=0
|
||||||
|
uncompressed=0
|
||||||
|
n=0
|
||||||
|
for i in $SHOWLIST;do
|
||||||
|
let n++
|
||||||
|
r=$(cat $TMPDIR/dialog.tmp|grep ^$i|cut -f2 -d'"')
|
||||||
|
read c u <<<$(echo $(sed -e "1,/START REPO: $r :/d" -e "1,/ $i$/d" -e '/^$/Q' -e '/[^0-9][^ ][^K]$/d' -e 's/ K$//' $WORKDIR/PACKAGES.TXT|grep compressed|sort|awk '{print $NF}'))
|
||||||
|
[ "$c" ]&&let compressed+=$c
|
||||||
|
[ "$u" ]&&let uncompressed+=$u
|
||||||
|
echo -en "Total space required to download $n/$COUNTLIST packages: $[$compressed/1024] MB \r"
|
||||||
|
done
|
||||||
|
available=$(df $TEMP|grep -v ^Filesystem|tail -1|awk '{print $4}')
|
||||||
|
echo "Total space required to download: $[$compressed/1024] MB; Available: $[$available/1024] MB"
|
||||||
|
if [ $available -gt $compressed ];then
|
||||||
|
echo "No sufficient space to download packages. Do you want to continue anyway? (y/N)"
|
||||||
|
answer
|
||||||
|
if [ "$ANSWER" != "Y" ] && [ "$ANSWER" != "y" ]; then
|
||||||
|
cleanup
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$2" == "install" ];then
|
||||||
|
available=$(df $ROOT/usr|grep -v ^Filesystem|tail -1|awk '{print $4}')
|
||||||
|
echo "Total space required to install: $[$uncompressed/1024] MB; Available: $[$available/1024] MB"
|
||||||
|
if [ $available -lt $compressed ];then
|
||||||
|
echo "No sufficient space to install packages. Do you want to continue anyway? (y/N)"
|
||||||
|
answer
|
||||||
|
if [ "$ANSWER" != "Y" ] && [ "$ANSWER" != "y" ]; then
|
||||||
|
cleanup
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
} # END function showlist()
|
} # END function showlist()
|
||||||
|
|
||||||
else # (DIALOG=off)
|
else # (DIALOG=off)
|
||||||
|
|
Loading…
Reference in a new issue