Pārlūkot izejas kodu

feat: Check returnvalues for drivers (#807)

Kroese 9 mēneši atpakaļ
vecāks
revīzija
b347232ac8
2 mainītis faili ar 35 papildinājumiem un 36 dzēšanām
  1. 14 15
      src/define.sh
  2. 21 21
      src/install.sh

+ 14 - 15
src/define.sh

@@ -1651,9 +1651,8 @@ addFolder() {
   info "$msg" && html "$msg"
 
   local dest="$src/\$OEM\$/\$1/OEM"
-  mkdir -p "$dest"
-
-  ! cp -Lr "$folder/." "$dest" && return 1
+  mkdir -p "$dest" || return 1
+  cp -Lr "$folder/." "$dest" || return 1
 
   local file
   file=$(find "$dest" -maxdepth 1 -type f -iname install.bat | head -n 1)
@@ -1715,21 +1714,21 @@ prepareInstall() {
     error "Failed to locate required storage drivers!" && return 1
   fi
 
-  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$target"
+  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$target" || return 1
 
-  mkdir -p "$dir/\$OEM\$/\$1/Drivers/viostor"
-  cp -L "$drivers/viostor/$driver/$arch/viostor.cat" "$dir/\$OEM\$/\$1/Drivers/viostor"
-  cp -L "$drivers/viostor/$driver/$arch/viostor.inf" "$dir/\$OEM\$/\$1/Drivers/viostor"
-  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$dir/\$OEM\$/\$1/Drivers/viostor"
+  mkdir -p "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
+  cp -L "$drivers/viostor/$driver/$arch/viostor.cat" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
+  cp -L "$drivers/viostor/$driver/$arch/viostor.inf" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
+  cp -L "$drivers/viostor/$driver/$arch/viostor.sys" "$dir/\$OEM\$/\$1/Drivers/viostor" || return 1
 
   if [ ! -f "$drivers/NetKVM/$driver/$arch/netkvm.sys" ]; then
     error "Failed to locate required network drivers!" && return 1
   fi
 
-  mkdir -p "$dir/\$OEM\$/\$1/Drivers/NetKVM"
-  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.cat" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
-  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.inf" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
-  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.sys" "$dir/\$OEM\$/\$1/Drivers/NetKVM"
+  mkdir -p "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
+  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.cat" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
+  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.inf" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
+  cp -L "$drivers/NetKVM/$driver/$arch/netkvm.sys" "$dir/\$OEM\$/\$1/Drivers/NetKVM" || return 1
 
   if [ ! -f "$target/TXTSETUP.SIF" ]; then
     error "The file TXTSETUP.SIF could not be found!" && return 1
@@ -1747,9 +1746,9 @@ prepareInstall() {
     error "Failed to locate required SATA drivers!" && return 1
   fi
 
-  mkdir -p "$dir/\$OEM\$/\$1/Drivers/sata"
-  cp -Lr "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata"
-  cp -Lr "$drivers/sata/xp/$arch/." "$target"
+  mkdir -p "$dir/\$OEM\$/\$1/Drivers/sata" || return 1
+  cp -Lr "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata" || return 1
+  cp -Lr "$drivers/sata/xp/$arch/." "$target" || return 1
 
   sed -i '/^\[SCSI.Load\]/s/$/\niaStor=iaStor.sys,4/' "$target/TXTSETUP.SIF"
   sed -i '/^\[FileFlags\]/s/$/\niaStor.sys = 16/' "$target/TXTSETUP.SIF"

+ 21 - 21
src/install.sh

@@ -704,9 +704,9 @@ addDriver() {
   esac
 
   local dest="$path/$target/$driver"
-  mkdir -p "$dest"
+  mkdir -p "$dest" || return 1
+  cp -Lr "$path/$driver/$folder/." "$dest" || return 1
 
-  cp -Lr "$path/$driver/$folder/." "$dest"
   return 0
 }
 
@@ -731,33 +731,33 @@ addDrivers() {
 
   local target="\$WinPEDriver\$"
   local dest="$drivers/$target"
-  mkdir -p "$dest"
+  mkdir -p "$dest" || return 1
 
   wimlib-imagex update "$file" "$index" --command "delete --force --recursive /$target" >/dev/null || true
 
-  addDriver "$version" "$drivers" "$target" "qxl"
-  addDriver "$version" "$drivers" "$target" "viofs"
-  addDriver "$version" "$drivers" "$target" "sriov"
-  addDriver "$version" "$drivers" "$target" "smbus"
-  addDriver "$version" "$drivers" "$target" "qxldod"
-  addDriver "$version" "$drivers" "$target" "viorng"
-  addDriver "$version" "$drivers" "$target" "viostor"
-  addDriver "$version" "$drivers" "$target" "viomem"
-  addDriver "$version" "$drivers" "$target" "NetKVM"
-  addDriver "$version" "$drivers" "$target" "Balloon"
-  addDriver "$version" "$drivers" "$target" "vioscsi"
-  addDriver "$version" "$drivers" "$target" "pvpanic"
-  addDriver "$version" "$drivers" "$target" "vioinput"
-  addDriver "$version" "$drivers" "$target" "viogpudo"
-  addDriver "$version" "$drivers" "$target" "vioserial"
-  addDriver "$version" "$drivers" "$target" "qemupciserial"
+  addDriver "$version" "$drivers" "$target" "qxl" || return 1
+  addDriver "$version" "$drivers" "$target" "viofs" || return 1
+  addDriver "$version" "$drivers" "$target" "sriov" || return 1
+  addDriver "$version" "$drivers" "$target" "smbus" || return 1
+  addDriver "$version" "$drivers" "$target" "qxldod" || return 1
+  addDriver "$version" "$drivers" "$target" "viorng" || return 1
+  addDriver "$version" "$drivers" "$target" "viostor" || return 1
+  addDriver "$version" "$drivers" "$target" "viomem" || return 1
+  addDriver "$version" "$drivers" "$target" "NetKVM" || return 1
+  addDriver "$version" "$drivers" "$target" "Balloon" || return 1
+  addDriver "$version" "$drivers" "$target" "vioscsi" || return 1
+  addDriver "$version" "$drivers" "$target" "pvpanic" || return 1
+  addDriver "$version" "$drivers" "$target" "vioinput" || return 1
+  addDriver "$version" "$drivers" "$target" "viogpudo" || return 1
+  addDriver "$version" "$drivers" "$target" "vioserial" || return 1
+  addDriver "$version" "$drivers" "$target" "qemupciserial" || return 1
 
   case "${version,,}" in
     "win11x64"* | "win2025"* )
       # Workaround Virtio GPU driver bug
       local dst="$src/\$OEM\$/\$\$/Drivers"
-      mkdir -p "$dst"
-      ! cp -Lr "$dest/." "$dst" && return 1
+      mkdir -p "$dst" || return 1
+      cp -Lr "$dest/." "$dst" || return 1
       rm -rf "$dest/viogpudo"
       ;;
   esac