Skip to content

Commit a0ca2e8

Browse files
close body and file in same func
1 parent 14c5b51 commit a0ca2e8

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

main.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,12 @@ func handleFilePull(client *http.Client, language string) (int64, error) {
129129
)
130130

131131
// todo: check if available first, then prompt, only the do download
132+
fmt.Printf("Pulling '%s'...\n", langUrl)
132133
body, err := downLoadFile(client, langUrl)
133134
if err != nil {
134135
return 0, fmt.Errorf("failed to download file %s: %w", langUrl, err)
135136
}
137+
defer body.Close()
136138

137139
var shouldAppend bool
138140
var userAction choice = "overwrite" // Default to overwrite if no file exists
@@ -170,7 +172,18 @@ func handleFilePull(client *http.Client, language string) (int64, error) {
170172
fileMode = os.O_TRUNC | os.O_CREATE | os.O_WRONLY
171173
}
172174

173-
bytesWritten, err := writeGitIgnore(body, fileMode)
175+
out, err := os.OpenFile(GIT_IGNORE, fileMode, 0644)
176+
if err != nil {
177+
return 0, fmt.Errorf("failed to open/create file %s: %w", GIT_IGNORE, err)
178+
}
179+
defer out.Close()
180+
181+
bytesWritten, err := writeGitIgnore(out, body)
182+
if fileMode == APPEND {
183+
if _, err := out.WriteString("\n"); err != nil {
184+
return 0, fmt.Errorf("failed to write append separator: %w", err)
185+
}
186+
}
174187
if err != nil {
175188
return bytesWritten, fmt.Errorf("failed to write file: %w", err)
176189
}
@@ -194,21 +207,8 @@ func downLoadFile(client *http.Client, langUrl string) (io.ReadCloser, error) {
194207
return resp.Body, nil
195208
}
196209

197-
func writeGitIgnore(source io.ReadCloser, mode int) (int64, error) {
198-
defer source.Close()
199-
out, err := os.OpenFile(GIT_IGNORE, mode, 0644)
200-
if err != nil {
201-
return 0, fmt.Errorf("failed to open/create file %s: %w", GIT_IGNORE, err)
202-
}
203-
defer out.Close()
204-
205-
if mode == APPEND {
206-
if _, err := out.WriteString("\n"); err != nil {
207-
return 0, fmt.Errorf("failed to write append separator: %w", err)
208-
}
209-
}
210-
211-
bytesCopied, err := io.Copy(out, source)
210+
func writeGitIgnore(dest io.Writer, src io.Reader) (int64, error) {
211+
bytesCopied, err := io.Copy(dest, src)
212212
if err != nil {
213213
return 0, fmt.Errorf("failed to copy content to file %s: %w", GIT_IGNORE, err)
214214
}

0 commit comments

Comments
 (0)