diff --git a/src/define.sh b/src/define.sh index 4884f5d..931161f 100644 --- a/src/define.sh +++ b/src/define.sh @@ -135,8 +135,12 @@ parseVersion() { "2003" | "2003r2" | "win2003" | "win2003r2" | "windows2003" | "windows 2003" ) VERSION="win2003r2" ;; - "core11" | "core 11" ) - VERSION="core11" + "nano11" | "nano 11" ) + VERSION="nano11" + [ -z "$DETECTED" ] && DETECTED="win11x64" + ;; + "" | "core 11" ) + VERSION="" [ -z "$DETECTED" ] && DETECTED="win11x64" ;; "tiny11" | "tiny 11" ) @@ -432,6 +436,7 @@ printVersion() { "tiny11"* ) desc="Tiny 11" ;; "tiny10"* ) desc="Tiny 10" ;; "core11"* ) desc="Core 11" ;; + "nano11"* ) desc="Nano 11" ;; "win7"* ) desc="Windows 7" ;; "win8"* ) desc="Windows 8" ;; "win10"* ) desc="Windows 10" ;; @@ -570,6 +575,9 @@ fromFile() { *"winvista"* | *"win_vista"* | *"windowsvista"* | *"windows_vista"* ) id="winvista${arch}" ;; + "nano11"* | "nano_11"* ) + id="nano11" + ;; "tiny11core"* | "tiny11_core"* | "tiny_11_core"* ) id="core11" ;; @@ -1093,6 +1101,11 @@ getLink4() { [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-us" ]] && return 0 case "${id,,}" in + "nano11" ) + size=2463565824 + sum="a1e0614372768cbe2d24de74b78a4a97bc1017ea5080dfed1d2125e4a527eb1a" + url="nano11_25h2/nano11%2025h2.iso" + ;; "core11" ) size=2159738880 sum="78f0f44444ff95b97125b43e560a72e0d6ce0a665cf9f5573bf268191e5510c1" diff --git a/src/install.sh b/src/install.sh index 867a4c8..be1aaa9 100644 --- a/src/install.sh +++ b/src/install.sh @@ -9,30 +9,40 @@ backup () { local count=1 local iso="$1" - local name="$2" + local name="unknown" + local root="$STORAGE/backups" + local previous="$STORAGE/windows.base" + + if [ -f "$previous" ]; then + + previous=$(<"$previous") + previous="${previous//[![:print:]]/}" + + [ -n "$previous" ] && name="${previous%.*}" + + fi + + mkdir -p "$root" local folder="$name" - local dir="$STORAGE/backups" + local dir="$root/$folder" - mkdir -p "$dir" - - while [ -d "$STORAGE/$folder" ] + while [ -d "$dir" ] do count=$[$count +1] folder="${name}.${count}" + dir="$root/$folder" done - dir+="/$folder" - rm -rf "$dir" mkdir -p "$dir" [ -f "$iso" ] && mv -f "$iso" "$dir/" + find "$STORAGE" -maxdepth 1 -type f -iname 'data.*' -not -iname '*.iso' -exec mv -n {} "$dir/" \; + find "$STORAGE" -maxdepth 1 -type f -iname 'windows.*' -not -iname '*.iso' -exec mv -n {} "$dir/" \; find "$STORAGE" -maxdepth 1 -type f \( -iname '*.rom' -or -iname '*.vars' \) -exec mv -n {} "$dir/" \; - find "$STORAGE" -maxdepth 1 -type f \( -iname 'data.*' -or -iname 'windows.*' \) -exec mv -n {} "$dir/" \; - if [ -z "$(ls -A "$dir")" ]; then - rm -rf "$dir" - fi + [ -z "$(ls -A "$dir")" ] && rm -rf "$dir" + [ -z "$(ls -A "$root")" ] && rm -rf "$root" return 0 } @@ -51,7 +61,6 @@ skipInstall() { previous="${previous//[![:print:]]/}" if [ -n "$previous" ]; then - if [[ "${STORAGE,,}/${previous,,}" != "${iso,,}" ]]; then if ! hasDisk; then @@ -78,10 +87,7 @@ skipInstall() { fi info "Detected that $method, a backup of your previous installation will be saved..." - - if ! backup "$STORAGE/$previous" "${previous%.*}"; then - error "Backup failed!" - fi + ! backup "$STORAGE/$previous" && error "Backup failed!" return 1 @@ -146,11 +152,7 @@ startInstall() { skipInstall "$BOOT" && return 1 if hasDisk; then - - if ! backup "" "backup"; then - error "Backup failed!" - fi - + ! backup "" && error "Backup failed!" fi mkdir -p "$TMP" @@ -168,8 +170,9 @@ startInstall() { rm -f "$BOOT" + find "$STORAGE" -maxdepth 1 -type f -iname 'data.*' -not -iname '*.iso' -delete + find "$STORAGE" -maxdepth 1 -type f -iname 'windows.*' -not -iname '*.iso' -delete find "$STORAGE" -maxdepth 1 -type f \( -iname '*.rom' -or -iname '*.vars' \) -delete - find "$STORAGE" -maxdepth 1 -type f \( -iname 'data.*' -or -iname 'windows.*' \) -delete return 0 }