feat: Check diskspace before download (#583)

This commit is contained in:
Kroese 2024-06-11 02:10:36 +02:00 committed by GitHub
parent 5bf54a4158
commit 577369a54f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View File

@ -1,5 +1,5 @@
FROM scratch FROM scratch
COPY --from=qemux/qemu-docker:5.12 / / COPY --from=qemux/qemu-docker:5.13 / /
ARG VERSION_ARG="0.0" ARG VERSION_ARG="0.0"
ARG DEBCONF_NOWARNINGS="yes" ARG DEBCONF_NOWARNINGS="yes"

View File

@ -418,6 +418,7 @@ getESD() {
{ wget "$winCatalog" -O "$dir/$wFile" -q --timeout=30; rc=$?; } || : { wget "$winCatalog" -O "$dir/$wFile" -q --timeout=30; rc=$?; } || :
msg="Failed to download $winCatalog" msg="Failed to download $winCatalog"
(( rc == 3 )) && error "$msg , cannot write file (disk full?)" && return 1
(( rc == 4 )) && error "$msg , network failure!" && return 1 (( rc == 4 )) && error "$msg , network failure!" && return 1
(( rc == 8 )) && error "$msg , server issued an error response!" && return 1 (( rc == 8 )) && error "$msg , server issued an error response!" && return 1
(( rc != 0 )) && error "$msg , reason: $rc" && return 1 (( rc != 0 )) && error "$msg , reason: $rc" && return 1
@ -509,10 +510,16 @@ downloadFile() {
local size="$4" local size="$4"
local lang="$5" local lang="$5"
local desc="$6" local desc="$6"
local rc total progress domain dots local rc total progress domain dots space folder
rm -f "$iso" rm -f "$iso"
if [ -n "$size" ] && [[ "$size" != "0" ]]; then
folder=$(dirname -- "$iso")
space=$(df --output=avail -B 1 "$folder" | tail -n 1)
(( size > space )) && error "Not enough free space left to download file!" && return 1
fi
# Check if running with interactive TTY or redirected to docker log # Check if running with interactive TTY or redirected to docker log
if [ -t 1 ]; then if [ -t 1 ]; then
progress="--progress=bar:noscroll" progress="--progress=bar:noscroll"
@ -548,6 +555,7 @@ downloadFile() {
fi fi
msg="Failed to download $url" msg="Failed to download $url"
(( rc == 3 )) && error "$msg , cannot write file (disk full?)" && return 1
(( rc == 4 )) && error "$msg , network failure!" && return 1 (( rc == 4 )) && error "$msg , network failure!" && return 1
(( rc == 8 )) && error "$msg , server issued an error response!" && return 1 (( rc == 8 )) && error "$msg , server issued an error response!" && return 1