Skip to content

Commit 3cab3d1

Browse files
authored
feat: Extract drivers to temporary folder (#803)
1 parent ff55f84 commit 3cab3d1

File tree

2 files changed

+38
-58
lines changed

2 files changed

+38
-58
lines changed

src/define.sh

+34-30
Original file line numberDiff line numberDiff line change
@@ -1637,6 +1637,31 @@ validVersion() {
16371637
return 1
16381638
}
16391639

1640+
addFolder() {
1641+
1642+
local src="$1"
1643+
local folder="/oem"
1644+
1645+
[ ! -d "$folder" ] && folder="/OEM"
1646+
[ ! -d "$folder" ] && folder="$STORAGE/oem"
1647+
[ ! -d "$folder" ] && folder="$STORAGE/OEM"
1648+
[ ! -d "$folder" ] && return 0
1649+
1650+
local msg="Adding OEM folder to image..."
1651+
info "$msg" && html "$msg"
1652+
1653+
local dest="$src/\$OEM\$/\$1/OEM"
1654+
mkdir -p "$dest"
1655+
1656+
! cp -Lr "$folder/." "$dest" && return 1
1657+
1658+
local file
1659+
file=$(find "$dest" -maxdepth 1 -type f -iname install.bat | head -n 1)
1660+
[ -f "$file" ] && unix2dos -q "$file"
1661+
1662+
return 0
1663+
}
1664+
16401665
migrateFiles() {
16411666

16421667
local base="$1"
@@ -1665,7 +1690,7 @@ prepareInstall() {
16651690
local arch="$4"
16661691
local key="$5"
16671692
local driver="$6"
1668-
local drivers="/run/shm/drivers"
1693+
local drivers="/tmp/drivers"
16691694

16701695
rm -rf "$drivers"
16711696
mkdir -p "$drivers"
@@ -1723,8 +1748,8 @@ prepareInstall() {
17231748
fi
17241749

17251750
mkdir -p "$dir/\$OEM\$/\$1/Drivers/sata"
1726-
cp -a "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata"
1727-
cp -a "$drivers/sata/xp/$arch/." "$target"
1751+
cp -Lr "$drivers/sata/xp/$arch/." "$dir/\$OEM\$/\$1/Drivers/sata"
1752+
cp -Lr "$drivers/sata/xp/$arch/." "$target"
17281753

17291754
sed -i '/^\[SCSI.Load\]/s/$/\niaStor=iaStor.sys,4/' "$target/TXTSETUP.SIF"
17301755
sed -i '/^\[FileFlags\]/s/$/\niaStor.sys = 16/' "$target/TXTSETUP.SIF"
@@ -1749,23 +1774,14 @@ prepareInstall() {
17491774
warn "this version of $desc requires a volume license key (VLK), it will ask for one during installation."
17501775
fi
17511776

1752-
local oem=""
1753-
local folder="/oem"
1754-
1755-
[ ! -d "$folder" ] && folder="/OEM"
1756-
[ ! -d "$folder" ] && folder="$STORAGE/oem"
1757-
[ ! -d "$folder" ] && folder="$STORAGE/OEM"
1758-
1759-
if [ -d "$folder" ]; then
1760-
1761-
file=$(find "$folder" -maxdepth 1 -type f -iname install.bat | head -n 1)
1762-
1763-
if [ -f "$file" ]; then
1764-
unix2dos -q "$file"
1765-
oem="\"Script\"=\"cmd /C start \\\"Install\\\" \\\"cmd /C C:\\\\OEM\\\\install.bat\\\"\""
1766-
fi
1777+
if ! addFolder "$dir"; then
1778+
error "Failed to add OEM folder to image!" && return 1
17671779
fi
17681780

1781+
local oem=""
1782+
local install="$dir/\$OEM\$/\$1/OEM/install.bat"
1783+
[ -f "$install" ] && oem="\"Script\"=\"cmd /C start \\\"Install\\\" \\\"cmd /C C:\\\\OEM\\\\install.bat\\\"\""
1784+
17691785
[ -z "$YRES" ] && YRES="720"
17701786
[ -z "$XRES" ] && XRES="1280"
17711787

@@ -1958,18 +1974,6 @@ prepareInstall() {
19581974
echo ""
19591975
} | unix2dos > "$dir/\$OEM\$/cmdlines.txt"
19601976

1961-
[ ! -d "$folder" ] && return 0
1962-
1963-
msg="Adding OEM folder to image..."
1964-
info "$msg" && html "$msg"
1965-
1966-
local dest="$dir/\$OEM\$/\$1/"
1967-
mkdir -p "$dest"
1968-
1969-
if ! cp -r "$folder" "$dest"; then
1970-
error "Failed to copy OEM folder!" && return 1
1971-
fi
1972-
19731977
return 0
19741978
}
19751979

src/install.sh

+4-28
Original file line numberDiff line numberDiff line change
@@ -704,8 +704,9 @@ addDriver() {
704704
esac
705705

706706
local dest="$path/$target/$driver"
707-
mv "$path/$driver/$folder" "$dest"
707+
mkdir -p "$dest"
708708

709+
cp -Lr "$path/$driver/$folder/." "$dest"
709710
return 0
710711
}
711712

@@ -756,7 +757,7 @@ addDrivers() {
756757
# Workaround Virtio GPU driver bug
757758
local dst="$src/\$OEM\$/\$\$/Drivers"
758759
mkdir -p "$dst"
759-
! cp -a "$dest/." "$dst" && return 1
760+
! cp -Lr "$dest/." "$dst" && return 1
760761
rm -rf "$dest/viogpudo"
761762
;;
762763
esac
@@ -769,37 +770,12 @@ addDrivers() {
769770
return 0
770771
}
771772

772-
addFolder() {
773-
774-
local src="$1"
775-
local folder="/oem"
776-
777-
[ ! -d "$folder" ] && folder="/OEM"
778-
[ ! -d "$folder" ] && folder="$STORAGE/oem"
779-
[ ! -d "$folder" ] && folder="$STORAGE/OEM"
780-
[ ! -d "$folder" ] && return 0
781-
782-
local msg="Adding OEM folder to image..."
783-
info "$msg" && html "$msg"
784-
785-
local dest="$src/\$OEM\$/\$1/OEM"
786-
mkdir -p "$dest"
787-
788-
! cp -a "$folder/." "$dest" && return 1
789-
790-
local file
791-
file=$(find "$dest" -maxdepth 1 -type f -iname install.bat | head -n 1)
792-
[ -f "$file" ] && unix2dos -q "$file"
793-
794-
return 0
795-
}
796-
797773
updateImage() {
798774

799775
local dir="$1"
800776
local asset="$2"
801777
local language="$3"
802-
local tmp="/run/shm/img"
778+
local tmp="/tmp/install"
803779
local file="autounattend.xml"
804780
local org="${file//.xml/.org}"
805781
local dat="${file//.xml/.dat}"

0 commit comments

Comments
 (0)