From 33a1996b2bc96856365bf8042fba5fbb698af96c Mon Sep 17 00:00:00 2001 From: mrjoelkamp Date: Wed, 15 May 2024 14:47:20 -0500 Subject: [PATCH] fix: no such directory error --- pkg/tuf/tuf.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/tuf/tuf.go b/pkg/tuf/tuf.go index 00808c5..48a1e13 100644 --- a/pkg/tuf/tuf.go +++ b/pkg/tuf/tuf.go @@ -116,6 +116,14 @@ func (t *TufClient) DownloadTarget(target string, filePath string) (actualFilePa return "", nil, err } + // check if filePath exists and create the directory if it doesn't + if _, err := os.Stat(filepath.Dir(filePath)); os.IsNotExist(err) { + err = os.MkdirAll(filepath.Dir(filePath), 0755) + if err != nil { + return "", nil, fmt.Errorf("failed to create target download directory '%s': %w", filepath.Dir(filePath), err) + } + } + // target is available, so let's see if the target is already present locally actualFilePath, data, err = t.updater.FindCachedTarget(targetInfo, filePath) if err != nil {