fix: Verify files are not empty

This commit is contained in:
Kroese 2024-04-16 16:40:18 +02:00 committed by GitHub
parent 334d2752c5
commit 2554395bf6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -71,7 +71,7 @@ hasDisk() {
[ -b "${DEVICE:-}" ] && return 0
if [ -f "$STORAGE/data.img" ] || [ -f "$STORAGE/data.qcow2" ]; then
if [ -s "$STORAGE/data.img" ] || [ -s "$STORAGE/data.qcow2" ]; then
return 0
fi
@ -172,6 +172,8 @@ startInstall() {
else
rm -f "$STORAGE/$BASE"
if skipInstall; then
BASE=""
VGA="virtio-gpu"
@ -237,7 +239,7 @@ getESD() {
cd /run
if [ ! -f "$dir/products.xml" ]; then
if [ ! -s "$dir/products.xml" ]; then
error "Failed to find products.xml!" && return 1
fi
@ -312,7 +314,7 @@ downloadImage() {
fKill "progress.sh"
(( rc != 0 )) && error "Failed to download $url , reason: $rc" && exit 60
[ ! -f "$iso" ] && return 1
[ ! -s "$iso" ] && return 1
html "Download finished successfully..."
return 0
@ -467,7 +469,7 @@ detectImage() {
if [ -n "$DETECTED" ]; then
if [ -f "/run/assets/$DETECTED.xml" ]; then
if [ -s "/run/assets/$DETECTED.xml" ]; then
[[ "$MANUAL" != [Yy1]* ]] && XML="$DETECTED.xml"
return 0
fi
@ -495,9 +497,9 @@ detectImage() {
fi
loc=$(find "$src" -maxdepth 1 -type f -iname install.wim | head -n 1)
[ ! -f "$loc" ] && loc=$(find "$src" -maxdepth 1 -type f -iname install.esd | head -n 1)
[ ! -s "$loc" ] && loc=$(find "$src" -maxdepth 1 -type f -iname install.esd | head -n 1)
if [ ! -f "$loc" ]; then
if [ ! -s "$loc" ]; then
warn "failed to locate 'install.wim' or 'install.esd' in ISO image, $FB"
return 0
fi
@ -524,7 +526,7 @@ detectImage() {
desc=$(printVersion "$DETECTED")
[ -z "$desc" ] && desc="$DETECTED"
if [ -f "/run/assets/$DETECTED.xml" ]; then
if [ -s "/run/assets/$DETECTED.xml" ]; then
[[ "$MANUAL" != [Yy1]* ]] && XML="$DETECTED.xml"
info "Detected: $desc"
else
@ -539,7 +541,7 @@ prepareImage() {
local iso="$1"
local dir="$2"
if [ -f "$dir/$ETFS" ] && [ -f "$dir/$EFISYS" ]; then
if [ -s "$dir/$ETFS" ] && [ -s "$dir/$EFISYS" ]; then
return 0
fi
@ -559,7 +561,7 @@ updateImage() {
local asset="/run/assets/$3"
local path src loc index result
[ ! -f "$asset" ] && return 0
[ ! -s "$asset" ] && return 0
path=$(find "$dir" -maxdepth 1 -type f -iname autounattend.xml | head -n 1)
[ -n "$path" ] && cp "$asset" "$path"
@ -572,9 +574,9 @@ updateImage() {
fi
loc=$(find "$src" -maxdepth 1 -type f -iname boot.wim | head -n 1)
[ ! -f "$loc" ] && loc=$(find "$src" -maxdepth 1 -type f -iname boot.esd | head -n 1)
[ ! -s "$loc" ] && loc=$(find "$src" -maxdepth 1 -type f -iname boot.esd | head -n 1)
if [ ! -f "$loc" ]; then
if [ ! -s "$loc" ]; then
warn "failed to locate 'boot.wim' or 'boot.esd' in ISO image, $FB"
return 1
fi
@ -626,14 +628,14 @@ buildImage() {
if ! genisoimage -o "$out" -b "$ETFS" -no-emul-boot -c "$cat" -iso-level 4 -J -l -D -N -joliet-long -relaxed-filenames -V "$label" \
-udf -boot-info-table -eltorito-alt-boot -eltorito-boot "$EFISYS" -no-emul-boot -allow-limited-size -quiet "$dir" 2> "$log"; then
[ -f "$log" ] && echo "$(<"$log")"
[ -s "$log" ] && echo "$(<"$log")"
return 1
fi
local error=""
local hide="Warning: creating filesystem that does not conform to ISO-9660."
[ -f "$log" ] && error="$(<"$log")"
[ -s "$log" ] && error="$(<"$log")"
[[ "$error" != "$hide" ]] && echo "$error"
if [ -f "$STORAGE/$BASE" ]; then
@ -652,7 +654,8 @@ if ! startInstall; then
return 0
fi
if [ ! -f "$ISO" ]; then
if [ ! -s "$ISO" ]; then
rm -f "$ISO"
if ! downloadImage "$ISO" "$VERSION"; then
error "Failed to download $VERSION"
exit 61