From ecc4564ff7d2d81f10df7e53d1a1f3d22b15db15 Mon Sep 17 00:00:00 2001 From: Superredstone Date: Thu, 19 Feb 2026 16:01:56 +0100 Subject: [PATCH] feat: add file exists check --- lib/download.go | 10 ++++++++++ lib/utils.go | 14 ++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/download.go b/lib/download.go index 83588c4..6406d4f 100644 --- a/lib/download.go +++ b/lib/download.go @@ -69,6 +69,16 @@ func (app *App) Download(url string, outputFile string, serviceString string, qu return err } + fileExists, err := FileExists(outputFile) + if err != nil { + return err + } + + if fileExists { + app.log("File " + outputFile + " already exists") + return nil + } + err = app.DownloadFromUrl(downloadUrl, outputFile) if err != nil { return err diff --git a/lib/utils.go b/lib/utils.go index 14fe4a3..424a28f 100644 --- a/lib/utils.go +++ b/lib/utils.go @@ -3,6 +3,7 @@ package lib import ( "errors" "fmt" + "os" "path" "strings" ) @@ -97,3 +98,16 @@ func GetFormatFromQuality(quality string) (string, error) { return "", errors.New("Invalid quality.") } } + +func FileExists(file string) (bool, error) { + _, err := os.Stat(file) + if err == nil { + return true, nil + } + + if errors.Is(err, os.ErrNotExist) { + return false, nil + } + + return false, err +}