mirror of
https://github.com/dockur/windows-arm.git
synced 2024-09-29 23:03:47 +00:00
fix: Verify files are not empty (#65)
This commit is contained in:
parent
e47a3785a8
commit
8b48a61574
3 changed files with 25 additions and 22 deletions
|
@ -1,5 +1,5 @@
|
|||
FROM scratch
|
||||
COPY --from=qemux/qemu-arm:1.09 / /
|
||||
COPY --from=qemux/qemu-arm:1.10 / /
|
||||
|
||||
ARG DEBCONF_NOWARNINGS "yes"
|
||||
ARG DEBIAN_FRONTEND "noninteractive"
|
||||
|
|
|
@ -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
|
||||
|
|
14
src/power.sh
14
src/power.sh
|
@ -25,7 +25,7 @@ _trap() {
|
|||
ready() {
|
||||
|
||||
[ -f "$STORAGE/windows.boot" ] && return 0
|
||||
[ ! -f "$QEMU_PTY" ] && return 1
|
||||
[ ! -s "$QEMU_PTY" ] && return 1
|
||||
|
||||
local line="Windows Boot Manager"
|
||||
if grep -Fq "$line" "$QEMU_PTY"; then
|
||||
|
@ -42,7 +42,7 @@ finish() {
|
|||
|
||||
touch "$QEMU_END"
|
||||
|
||||
if [ -f "$QEMU_PID" ]; then
|
||||
if [ -s "$QEMU_PID" ]; then
|
||||
|
||||
pid=$(<"$QEMU_PID")
|
||||
error "Forcefully terminating Windows, reason: $reason..."
|
||||
|
@ -51,7 +51,7 @@ finish() {
|
|||
while isAlive "$pid"; do
|
||||
sleep 1
|
||||
# Workaround for zombie pid
|
||||
[ ! -f "$QEMU_PID" ] && break
|
||||
[ ! -s "$QEMU_PID" ] && break
|
||||
done
|
||||
fi
|
||||
|
||||
|
@ -64,7 +64,7 @@ finish() {
|
|||
fi
|
||||
|
||||
pid="/var/run/tpm.pid"
|
||||
[ -f "$pid" ] && pKill "$(<"$pid")"
|
||||
[ -s "$pid" ] && pKill "$(<"$pid")"
|
||||
|
||||
fKill "wsdd"
|
||||
fKill "smbd"
|
||||
|
@ -81,7 +81,7 @@ terminal() {
|
|||
|
||||
local dev=""
|
||||
|
||||
if [ -f "$QEMU_OUT" ]; then
|
||||
if [ -s "$QEMU_OUT" ]; then
|
||||
|
||||
local msg
|
||||
msg=$(<"$QEMU_OUT")
|
||||
|
@ -129,7 +129,7 @@ _graceful_shutdown() {
|
|||
touch "$QEMU_END"
|
||||
info "Received $1, sending ACPI shutdown signal..."
|
||||
|
||||
if [ ! -f "$QEMU_PID" ]; then
|
||||
if [ ! -s "$QEMU_PID" ]; then
|
||||
error "QEMU PID file does not exist?"
|
||||
finish "$code" && return "$code"
|
||||
fi
|
||||
|
@ -158,7 +158,7 @@ _graceful_shutdown() {
|
|||
|
||||
! isAlive "$pid" && break
|
||||
# Workaround for zombie pid
|
||||
[ ! -f "$QEMU_PID" ] && break
|
||||
[ ! -s "$QEMU_PID" ] && break
|
||||
|
||||
info "Waiting for Windows to shutdown... ($cnt/$QEMU_TIMEOUT)"
|
||||
|
||||
|
|
Loading…
Reference in a new issue