From c26ecf70fec39d6ecf0d7a1f0b569aca7dc79e60 Mon Sep 17 00:00:00 2001 From: AzenKain Date: Tue, 2 Sep 2025 18:37:30 +0700 Subject: [PATCH] Add fall back with 7zip --- hdiff-any-game/main.go | 23 ++++++++++++++++------- ldiff-converter/Makefile | 2 +- ldiff-converter/main.go | 8 ++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/hdiff-any-game/main.go b/hdiff-any-game/main.go index 4b0069b..f60f391 100644 --- a/hdiff-any-game/main.go +++ b/hdiff-any-game/main.go @@ -49,8 +49,8 @@ func main() { fmt.Println("Diffing folders...") result, err := DiffFolders(oldPath, newPath) if err != nil { - fmt.Println("Error:", err) - return + fmt.Fprintln(os.Stderr, "Error:", err) + os.Exit(1) } fmt.Println() fmt.Println("Diffing folders done.") @@ -60,16 +60,16 @@ func main() { fmt.Println("Copying new files...") if err := CopyNewFiles(newPath, result); err != nil { - fmt.Println("Error writing diff:", err) - return + fmt.Fprintln(os.Stderr, "Error writing diff:", err) + os.Exit(1) } fmt.Println() fmt.Println("Copying new files done.") fmt.Println("Making hdiff files...") if err := MakeHdiffFile(oldPath, newPath, result.Changed); err != nil { - fmt.Println("Error writing diff:", err) - return + fmt.Fprintln(os.Stderr, "Error writing diff:", err) + os.Exit(1) } fmt.Println() fmt.Println("Making hdiff files done.") @@ -77,8 +77,17 @@ func main() { fmt.Println("Zipping hdiff files...") if err := ZipWith7za(hdiffFolderPath, hdiffName); err != nil { fmt.Println("Error writing diff:", err) - return + os.Exit(1) } + + if _, err := os.Stat(hdiffName); os.IsNotExist(err) { + fmt.Println("File not found, retrying...") + if err := ZipWith7za(hdiffFolderPath, hdiffName); err != nil { + fmt.Println("Retry failed:", err) + os.Exit(1) + } + } + fmt.Println("Zipping hdiff files done.") fmt.Println("Removing hdiff temp files...") diff --git a/ldiff-converter/Makefile b/ldiff-converter/Makefile index 3ce1215..7520dd3 100644 --- a/ldiff-converter/Makefile +++ b/ldiff-converter/Makefile @@ -1,4 +1,4 @@ -APP_NAME = ldff-converter.exe +APP_NAME = ldiff-converter.exe all: build diff --git a/ldiff-converter/main.go b/ldiff-converter/main.go index e115770..6cf9543 100644 --- a/ldiff-converter/main.go +++ b/ldiff-converter/main.go @@ -144,6 +144,14 @@ func main() { fmt.Fprintln(os.Stderr, "error zip hdiff:", err) os.Exit(1) } + + if _, err := os.Stat(hdiff); os.IsNotExist(err) { + fmt.Println("File not found, retrying...") + if err := ZipWith7za(hdiffFolderPath, hdiff); err != nil { + fmt.Println("Retry failed:", err) + os.Exit(1) + } + } fmt.Println("Zipping hdiff files done.") fmt.Println("Removing hdiff temp files...")