Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pkg/appstore/appstore_download.go
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ func (t *appstore) applyPatches(item downloadItemResult, acc Account, src, dst s
if err != nil {
Comment thread
majd marked this conversation as resolved.
return fmt.Errorf("failed to open file: %w", err)
}
defer dstFile.Close()

dstZip := zip.NewWriter(dstFile)
defer dstZip.Close()
Expand Down
46 changes: 30 additions & 16 deletions pkg/appstore/appstore_replicate_sinf.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,19 @@
if err != nil {
return errors.New("failed to open zip reader")
}
defer zipReader.Close()

tmpPath := fmt.Sprintf("%s.tmp", input.PackagePath)
tmpFile, err := t.os.OpenFile(tmpPath, os.O_CREATE|os.O_WRONLY, 0644)

tmpFile, err := t.os.OpenFile(tmpPath, os.O_CREATE|os.O_WRONLY, 0644)
Comment thread
majd marked this conversation as resolved.
if err != nil {
return fmt.Errorf("failed to open file: %w", err)
}

defer tmpFile.Close()

zipWriter := zip.NewWriter(tmpFile)
defer zipWriter.Close()

err = t.replicateZip(zipReader, zipWriter)
if err != nil {
Expand Down Expand Up @@ -69,10 +73,6 @@
return fmt.Errorf("failed to replicate sinf: %w", err)
}

zipReader.Close()
zipWriter.Close()
tmpFile.Close()

err = t.os.Remove(input.PackagePath)
if err != nil {
return fmt.Errorf("failed to remove original file: %w", err)
Expand Down Expand Up @@ -135,22 +135,34 @@

func (t *appstore) replicateZip(src *zip.ReadCloser, dst *zip.Writer) error {
for _, file := range src.File {
srcFile, err := file.OpenRaw()
err := t.copyRawZipFile(file, dst)
if err != nil {
return fmt.Errorf("failed to open raw file: %w", err)
return err
}
}

header := file.FileHeader
dstFile, err := dst.CreateRaw(&header)
return nil
}

if err != nil {
return fmt.Errorf("failed to create raw file: %w", err)
}
func (*appstore) copyRawZipFile(file *zip.File, dst *zip.Writer) error {
srcFile, err := file.OpenRaw()
if err != nil {
return fmt.Errorf("failed to open raw file: %w", err)
}

_, err = io.Copy(dstFile, srcFile)
if err != nil {
return fmt.Errorf("failed to copy file: %w", err)
}
if srcCloser, ok := srcFile.(io.Closer); ok {
defer srcCloser.Close()
}

header := file.FileHeader
dstFile, err := dst.CreateRaw(&header)
if err != nil {

Check failure on line 159 in pkg/appstore/appstore_replicate_sinf.go

View workflow job for this annotation

GitHub Actions / Lint

only one cuddle assignment allowed before if statement (wsl)
return fmt.Errorf("failed to create raw file: %w", err)
}

_, err = io.Copy(dstFile, srcFile)
if err != nil {
return fmt.Errorf("failed to copy file: %w", err)
}

return nil
Expand All @@ -163,6 +175,7 @@
if err != nil {
return nil, fmt.Errorf("failed to open file: %w", err)
}
defer src.Close()
Comment thread
majd marked this conversation as resolved.

data := new(bytes.Buffer)
_, err = io.Copy(data, src)
Expand Down Expand Up @@ -192,6 +205,7 @@
if err != nil {
return nil, fmt.Errorf("failed to open file: %w", err)
}
defer src.Close()

data := new(bytes.Buffer)
_, err = io.Copy(data, src)
Expand Down
Loading