From 6b6dbdda99e25fd2f9cdd2816d1e73b302312e9f Mon Sep 17 00:00:00 2001 From: Evan Burkey Date: Sun, 20 Jul 2025 21:13:07 -0700 Subject: [PATCH] add skip download --- main.go | 2 +- pkg/epoch/update.go | 52 +++++++++++++++++++++++---------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/main.go b/main.go index 40bf22c..3fb7f6b 100644 --- a/main.go +++ b/main.go @@ -49,7 +49,7 @@ func main() { log.Fatalf("WowDir in %s is still the default setting, exiting", cfgPath) } - stats, err := epoch.DownloadUpdate(config.WowDir, forceFlag, config.RemoveUnknownPatches) + stats, err := epoch.Update(config.WowDir, forceFlag, config.RemoveUnknownPatches, false) if err != nil { log.Fatal(err) } diff --git a/pkg/epoch/update.go b/pkg/epoch/update.go index ec23f8b..c574736 100644 --- a/pkg/epoch/update.go +++ b/pkg/epoch/update.go @@ -19,7 +19,7 @@ type DownloadStats struct { Current int } -func DownloadUpdate(wowdir string, force bool, removeUnknown bool) (DownloadStats, error) { +func Update(wowdir string, force bool, removeUnknown bool, skipDownload bool) (DownloadStats, error) { var stats DownloadStats manifest, err := GetManifest() @@ -56,36 +56,38 @@ func DownloadUpdate(wowdir string, force bool, removeUnknown bool) (DownloadStat } } - fmt.Printf("Updating %s...\n", localPath) + if !skipDownload { + fmt.Printf("Updating %s...\n", localPath) - outFile, err := os.Create(localPath) - if err != nil { - return stats, err - } - - for _, url := range []string{file.Urls.Cloudflare, file.Urls.Digitalocean, file.Urls.None} { - resp, err := http.Get(url) + outFile, err := os.Create(localPath) if err != nil { - outFile.Close() - return stats, err - } - defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - outFile.Close() - return stats, fmt.Errorf("failed to download update from %s, status code: %d", url, resp.StatusCode) - } - - _, err = io.Copy(outFile, resp.Body) - if err != nil { - outFile.Close() return stats, err } - break - } + for _, url := range []string{file.Urls.Cloudflare, file.Urls.Digitalocean, file.Urls.None} { + resp, err := http.Get(url) + if err != nil { + outFile.Close() + return stats, err + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + outFile.Close() + return stats, fmt.Errorf("failed to download update from %s, status code: %d", url, resp.StatusCode) + } - outFile.Close() - stats.Updated += 1 + _, err = io.Copy(outFile, resp.Body) + if err != nil { + outFile.Close() + return stats, err + } + + break + } + + outFile.Close() + stats.Updated += 1 + } } if removeUnknown {