From f111e693b5a8bb15f7a0d36026c78e526805074a Mon Sep 17 00:00:00 2001 From: Shreyas Goenka Date: Fri, 30 Jun 2023 02:25:16 +0200 Subject: [PATCH] added explict mkdir --- libs/git/clone.go | 8 ++++++-- libs/zip/extract.go | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libs/git/clone.go b/libs/git/clone.go index b2cace6ac..be2cbbf90 100644 --- a/libs/git/clone.go +++ b/libs/git/clone.go @@ -76,7 +76,7 @@ func download(ctx context.Context, url string, dest string) error { return fmt.Errorf("failed to download ZIP archive: %s. %s", url, resp.Status) } - f, err := os.OpenFile(dest, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644) + f, err := os.Create(dest) if err != nil { return err } @@ -108,13 +108,17 @@ func clonePrivate(ctx context.Context, opts CloneOptions) error { } func clonePublic(ctx context.Context, opts CloneOptions) error { - zipDst := filepath.Join(opts.TargetDir, opts.RepositoryName+".zip") + tmpDir := os.TempDir() + defer os.Remove(tmpDir) + + zipDst := filepath.Join(tmpDir, opts.RepositoryName+".zip") // Download public repository from github as a ZIP file err := download(ctx, opts.zipUrl(), zipDst) if err != nil { return err } + defer os.Remove(zipDst) // Decompress the ZIP file err = zip.Extract(zipDst, opts.TargetDir) diff --git a/libs/zip/extract.go b/libs/zip/extract.go index 50277feae..19c07913e 100644 --- a/libs/zip/extract.go +++ b/libs/zip/extract.go @@ -15,6 +15,12 @@ func Extract(src string, dst string) error { } defer zipReader.Close() + // create dst directory incase it does not exist. + err = os.MkdirAll(dst, 0755) + if err != nil { + return err + } + return fs.WalkDir(zipReader, ".", func(path string, d fs.DirEntry, err error) error { if err != nil { return err