Loading src/install.sh +66 −24 Original line number Diff line number Diff line Loading @@ -339,10 +339,12 @@ extractESD() { local dir="$2" local version="$3" local desc="$4" local size size_gb space space_gb desc local size size_gb sizes space space_gb local desc total total1 total2 total3 total4 local imageIndex links links1 links2 links3 links4 local msg="Extracting $desc bootdisk..." info "$msg" && html "$msg" local msg="Extracting $desc bootdisk" info "$msg..." && html "$msg..." if [ "$(stat -c%s "$iso")" -lt 100000000 ]; then error "Invalid ESD file: Size is smaller than 100 MB" && return 1 Loading @@ -351,7 +353,7 @@ extractESD() { rm -rf "$dir" mkdir -p "$dir" size=16106127360 size=9606127360 size_gb=$(formatBytes "$size") space=$(df --output=avail -B 1 "$dir" | tail -n 1) space_gb=$(formatBytes "$space") Loading @@ -367,40 +369,68 @@ extractESD() { error "Cannot read the image count in ESD file!" && return 1 fi wimlib-imagex apply "$iso" 1 "$dir" --quiet 2>/dev/null || { sizes=$(wimlib-imagex info "$iso" | grep "Total Bytes:") links=$(wimlib-imagex info "$iso" | grep "Hard Link Bytes:") total1=$(awk "NR==1{ print; }" <<< "$sizes" | cut -d':' -f2 | sed 's/^ *//') links1=$(awk "NR==1{ print; }" <<< "$links" | cut -d':' -f2 | sed 's/^ *//') total=$(( total1 - links1 )) total3=$(awk "NR==3{ print; }" <<< "$sizes" | cut -d':' -f2 | sed 's/^ *//') links3=$(awk "NR==3{ print; }" <<< "$links" | cut -d':' -f2 | sed 's/^ *//') total3=$(( total3 - links3 )) total3=$(( total3 + 60000000 )) /run/progress.sh "$dir" "$total" "$msg ([P])..." & imageIndex="1" wimlib-imagex apply "$iso" "$imageIndex" "$dir" --quiet 2>/dev/null || { retVal=$? error "Extracting $desc bootdisk failed" && return $retVal fKill "progress.sh" error "Extracting $desc bootdisk failed ($retVal)" && return 1 } fKill "progress.sh" local bootWimFile="$dir/sources/boot.wim" local installWimFile="$dir/sources/install.wim" local msg="Extracting $desc environment..." info "$msg" && html "$msg" local msg="Extracting $desc environment" info "$msg..." && html "$msg..." wimlib-imagex export "$iso" 2 "$bootWimFile" --compress=none --quiet || { imageIndex="2" /run/progress.sh "$bootWimFile" "$total3" "$msg ([P])..." & wimlib-imagex export "$iso" "$imageIndex" "$bootWimFile" --compress=none --quiet || { retVal=$? error "Adding WinPE failed" && return ${retVal} fKill "progress.sh" error "Adding WinPE failed ($retVal)" && return 1 } local msg="Extracting $desc setup..." info "$msg" && html "$msg" local msg="Extracting $desc setup" info "$msg..." imageIndex="3" /run/progress.sh "$bootWimFile" "$total3" "$msg ([P])..." & wimlib-imagex export "$iso" 3 "$bootWimFile" --compress=none --boot --quiet || { wimlib-imagex export "$iso" "$imageIndex" "$bootWimFile" --compress=none --boot --quiet || { retVal=$? error "Adding Windows Setup failed" && return ${retVal} fKill "progress.sh" error "Adding Windows Setup failed ($retVal)" && return 1 } fKill "progress.sh" if [[ "${PLATFORM,,}" == "x64" ]]; then LABEL="CCCOMA_X64FRE_EN-US_DV9" else LABEL="CPBA_A64FRE_EN-US_DV9" fi local msg="Extracting $desc image..." info "$msg" && html "$msg" local msg="Extracting $desc image" info "$msg..." && html "$msg..." local edition imageIndex imageEdition local edition imageEdition edition=$(getCatalog "$version" "name") if [ -z "$edition" ]; then Loading @@ -408,15 +438,27 @@ extractESD() { fi for (( imageIndex=4; imageIndex<=esdImageCount; imageIndex++ )); do imageEdition=$(wimlib-imagex info "$iso" ${imageIndex} | grep '^Description:' | sed 's/Description:[ \t]*//') imageEdition=$(wimlib-imagex info "$iso" "$imageIndex" | grep '^Description:' | sed 's/Description:[ \t]*//') [[ "${imageEdition,,}" != "${edition,,}" ]] && continue wimlib-imagex export "$iso" ${imageIndex} "$installWimFile" --compress=LZMS --chunk-size 128K --quiet || { total4=$(du -sb "$iso" | cut -f1) total4=$(( total4 + 3000000 )) /run/progress.sh "$installWimFile" "$total4" "$msg ([P])..." & wimlib-imagex export "$iso" "$imageIndex" "$installWimFile" --compress=LZMS --chunk-size 128K --quiet || { retVal=$? error "Addition of $imageIndex to the $desc image failed" && return $retVal fKill "progress.sh" error "Addition of $imageIndex to the $desc image failed ($retVal)" && return 1 } fKill "progress.sh" return 0 done fKill "progress.sh" error "Failed to find product '$edition' in install.wim!" && return 1 } Loading @@ -440,8 +482,8 @@ extractImage() { return 1 fi local msg="Extracting $desc image..." info "$msg" && html "$msg" local msg="Extracting $desc image" info "$msg..." && html "$msg..." rm -rf "$dir" mkdir -p "$dir" Loading Loading @@ -1081,8 +1123,8 @@ buildImage() { desc=$(printVersion "$DETECTED" "ISO") local msg="Building $desc image..." info "$msg" && html "$msg" local msg="Building $desc image" info "$msg..." && html "$msg..." [ -z "$LABEL" ] && LABEL="Windows" Loading Loading
src/install.sh +66 −24 Original line number Diff line number Diff line Loading @@ -339,10 +339,12 @@ extractESD() { local dir="$2" local version="$3" local desc="$4" local size size_gb space space_gb desc local size size_gb sizes space space_gb local desc total total1 total2 total3 total4 local imageIndex links links1 links2 links3 links4 local msg="Extracting $desc bootdisk..." info "$msg" && html "$msg" local msg="Extracting $desc bootdisk" info "$msg..." && html "$msg..." if [ "$(stat -c%s "$iso")" -lt 100000000 ]; then error "Invalid ESD file: Size is smaller than 100 MB" && return 1 Loading @@ -351,7 +353,7 @@ extractESD() { rm -rf "$dir" mkdir -p "$dir" size=16106127360 size=9606127360 size_gb=$(formatBytes "$size") space=$(df --output=avail -B 1 "$dir" | tail -n 1) space_gb=$(formatBytes "$space") Loading @@ -367,40 +369,68 @@ extractESD() { error "Cannot read the image count in ESD file!" && return 1 fi wimlib-imagex apply "$iso" 1 "$dir" --quiet 2>/dev/null || { sizes=$(wimlib-imagex info "$iso" | grep "Total Bytes:") links=$(wimlib-imagex info "$iso" | grep "Hard Link Bytes:") total1=$(awk "NR==1{ print; }" <<< "$sizes" | cut -d':' -f2 | sed 's/^ *//') links1=$(awk "NR==1{ print; }" <<< "$links" | cut -d':' -f2 | sed 's/^ *//') total=$(( total1 - links1 )) total3=$(awk "NR==3{ print; }" <<< "$sizes" | cut -d':' -f2 | sed 's/^ *//') links3=$(awk "NR==3{ print; }" <<< "$links" | cut -d':' -f2 | sed 's/^ *//') total3=$(( total3 - links3 )) total3=$(( total3 + 60000000 )) /run/progress.sh "$dir" "$total" "$msg ([P])..." & imageIndex="1" wimlib-imagex apply "$iso" "$imageIndex" "$dir" --quiet 2>/dev/null || { retVal=$? error "Extracting $desc bootdisk failed" && return $retVal fKill "progress.sh" error "Extracting $desc bootdisk failed ($retVal)" && return 1 } fKill "progress.sh" local bootWimFile="$dir/sources/boot.wim" local installWimFile="$dir/sources/install.wim" local msg="Extracting $desc environment..." info "$msg" && html "$msg" local msg="Extracting $desc environment" info "$msg..." && html "$msg..." wimlib-imagex export "$iso" 2 "$bootWimFile" --compress=none --quiet || { imageIndex="2" /run/progress.sh "$bootWimFile" "$total3" "$msg ([P])..." & wimlib-imagex export "$iso" "$imageIndex" "$bootWimFile" --compress=none --quiet || { retVal=$? error "Adding WinPE failed" && return ${retVal} fKill "progress.sh" error "Adding WinPE failed ($retVal)" && return 1 } local msg="Extracting $desc setup..." info "$msg" && html "$msg" local msg="Extracting $desc setup" info "$msg..." imageIndex="3" /run/progress.sh "$bootWimFile" "$total3" "$msg ([P])..." & wimlib-imagex export "$iso" 3 "$bootWimFile" --compress=none --boot --quiet || { wimlib-imagex export "$iso" "$imageIndex" "$bootWimFile" --compress=none --boot --quiet || { retVal=$? error "Adding Windows Setup failed" && return ${retVal} fKill "progress.sh" error "Adding Windows Setup failed ($retVal)" && return 1 } fKill "progress.sh" if [[ "${PLATFORM,,}" == "x64" ]]; then LABEL="CCCOMA_X64FRE_EN-US_DV9" else LABEL="CPBA_A64FRE_EN-US_DV9" fi local msg="Extracting $desc image..." info "$msg" && html "$msg" local msg="Extracting $desc image" info "$msg..." && html "$msg..." local edition imageIndex imageEdition local edition imageEdition edition=$(getCatalog "$version" "name") if [ -z "$edition" ]; then Loading @@ -408,15 +438,27 @@ extractESD() { fi for (( imageIndex=4; imageIndex<=esdImageCount; imageIndex++ )); do imageEdition=$(wimlib-imagex info "$iso" ${imageIndex} | grep '^Description:' | sed 's/Description:[ \t]*//') imageEdition=$(wimlib-imagex info "$iso" "$imageIndex" | grep '^Description:' | sed 's/Description:[ \t]*//') [[ "${imageEdition,,}" != "${edition,,}" ]] && continue wimlib-imagex export "$iso" ${imageIndex} "$installWimFile" --compress=LZMS --chunk-size 128K --quiet || { total4=$(du -sb "$iso" | cut -f1) total4=$(( total4 + 3000000 )) /run/progress.sh "$installWimFile" "$total4" "$msg ([P])..." & wimlib-imagex export "$iso" "$imageIndex" "$installWimFile" --compress=LZMS --chunk-size 128K --quiet || { retVal=$? error "Addition of $imageIndex to the $desc image failed" && return $retVal fKill "progress.sh" error "Addition of $imageIndex to the $desc image failed ($retVal)" && return 1 } fKill "progress.sh" return 0 done fKill "progress.sh" error "Failed to find product '$edition' in install.wim!" && return 1 } Loading @@ -440,8 +482,8 @@ extractImage() { return 1 fi local msg="Extracting $desc image..." info "$msg" && html "$msg" local msg="Extracting $desc image" info "$msg..." && html "$msg..." rm -rf "$dir" mkdir -p "$dir" Loading Loading @@ -1081,8 +1123,8 @@ buildImage() { desc=$(printVersion "$DETECTED" "ISO") local msg="Building $desc image..." info "$msg" && html "$msg" local msg="Building $desc image" info "$msg..." && html "$msg..." [ -z "$LABEL" ] && LABEL="Windows" Loading