From f619501d0d511cf5b2f7bea6cc2987ecdf7d82f6 Mon Sep 17 00:00:00 2001 From: ze0s <43699394+zze0s@users.noreply.github.com> Date: Mon, 26 Feb 2024 14:19:47 +0100 Subject: [PATCH] fix(releases): create custom TEMPDIR if not exists (#1428) * fix(releases): create custom TEMPDIR if not exists * fix(releases): create temp err handling --- internal/domain/release.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/domain/release.go b/internal/domain/release.go index dcade3a..5b16fb3 100644 --- a/internal/domain/release.go +++ b/internal/domain/release.go @@ -451,10 +451,25 @@ func (r *Release) downloadTorrentFile(ctx context.Context) error { req.Header.Set("Cookie", r.RawCookie) } + tmpFilePattern := "autobrr-" + tmpDir := os.TempDir() + // Create tmp file - tmpFile, err := os.CreateTemp("", "autobrr-") + tmpFile, err := os.CreateTemp(tmpDir, tmpFilePattern) if err != nil { - return errors.Wrap(err, "error creating tmp file") + // inverse the err check to make it a bit cleaner + if !errors.Is(err, os.ErrNotExist) { + return errors.Wrap(err, "error creating tmp file") + } + + if mkdirErr := os.MkdirAll(tmpDir, os.ModePerm); mkdirErr != nil { + return errors.Wrap(mkdirErr, "could not create TMP dir: %s", tmpDir) + } + + tmpFile, err = os.CreateTemp(tmpDir, tmpFilePattern) + if err != nil { + return errors.Wrap(err, "error creating tmp file in: %s", tmpDir) + } } defer tmpFile.Close()