From 5d2e6fac65477a83d74eeed5dc64942365b91f4d Mon Sep 17 00:00:00 2001 From: Kroese Date: Tue, 11 Jun 2024 02:11:23 +0200 Subject: [PATCH] feat: Check diskspace before download (#153) --- src/mido.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mido.sh b/src/mido.sh index 00236f6..d6725b0 100644 --- a/src/mido.sh +++ b/src/mido.sh @@ -71,6 +71,7 @@ getESD() { { wget "$winCatalog" -O "$dir/$wFile" -q --timeout=30; rc=$?; } || : 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 == 8 )) && error "$msg , server issued an error response!" && return 1 (( rc != 0 )) && error "$msg , reason: $rc" && return 1 @@ -162,10 +163,16 @@ downloadFile() { local size="$4" local lang="$5" local desc="$6" - local rc total progress domain dots + local rc total progress domain dots space folder 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 if [ -t 1 ]; then progress="--progress=bar:noscroll" @@ -201,6 +208,7 @@ downloadFile() { fi 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 == 8 )) && error "$msg , server issued an error response!" && return 1