Skip to content

Commit 56601a0

Browse files
committed
add missing error handling
Signed-off-by: Jakub Sokołowski <[email protected]>
1 parent b125001 commit 56601a0

File tree

4 files changed

+30
-18
lines changed

4 files changed

+30
-18
lines changed

main.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package main
33
import (
44
"bufio"
55
"flag"
6-
"fmt"
76
"log"
87
"os"
98
"strings"
@@ -41,8 +40,7 @@ You can provide your own list using the -reposFile flag.
4140
func flagsInit() {
4241
defaultUsage := flag.Usage
4342
flag.Usage = func() {
44-
fmt.Fprintf(os.Stderr, // TODO unhandled error
45-
strings.Trim(helpMessage, "\t "),
43+
l.Printf(strings.Trim(helpMessage, "\t "),
4644
strings.Join(fetcher.DefaultRepos, "\n"))
4745
defaultUsage()
4846
}
@@ -92,7 +90,7 @@ func main() {
9290
for scanner.Scan() {
9391
dep, err := pom.DependencyFromString(scanner.Text())
9492
if err != nil {
95-
l.Printf("failed to parse input: %s", err)
93+
l.Println("failed to parse input:", err)
9694
continue
9795
}
9896
/* The threads print found URLs into STDOUT. */
@@ -101,7 +99,8 @@ func main() {
10199

102100
/* Reading from STDIN might fail. */
103101
if err := scanner.Err(); err != nil {
104-
l.Printf("error:", err) // TODO unhandled error
102+
l.Println("stdin read error:", err)
103+
os.Exit(1)
105104
}
106105

107106
/* Each FindUrls() call can spawn more recursive FindUrls() routines.

pom/metadata.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,17 @@ type Metadata struct {
2121
}
2222

2323
/* For reading Metadata from downloaded XML file. */
24-
func MetadataFromReader(reader io.ReadCloser) (*Metadata, error) {
25-
defer reader.Close() // TODO unhandled error
24+
func MetadataFromReader(reader io.ReadCloser) (meta *Metadata, err error) {
25+
defer func() {
26+
cerr := reader.Close()
27+
if err == nil {
28+
err = cerr
29+
}
30+
}()
2631
decoder := xml.NewDecoder(reader)
2732
decoder.CharsetReader = charset.NewReaderLabel
28-
var meta Metadata
29-
err := decoder.Decode(&meta)
30-
return &meta, err
33+
err = decoder.Decode(&meta)
34+
return
3135
}
3236

3337
/* There are multiple values that could indicate latest version. */

pom/project.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ type Project struct {
2020
}
2121

2222
/* For reading Project from downloaded POM file. */
23-
func ProjectFromReader(reader io.ReadCloser) (*Project, error) {
24-
defer reader.Close() // TODO unhandled error
23+
func ProjectFromReader(reader io.ReadCloser) (project *Project, err error) {
24+
defer func() {
25+
cerr := reader.Close()
26+
if err == nil {
27+
err = cerr
28+
}
29+
}()
2530
decoder := xml.NewDecoder(reader)
2631
decoder.CharsetReader = charset.NewReaderLabel
27-
var project Project
28-
err := decoder.Decode(&project)
29-
return &project, err
32+
err = decoder.Decode(&project)
33+
return
3034
}
3135

3236
/* Sometimes groupId is not specified in project */

read.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@ import (
66
)
77

88
/* Just a helper for reading file with repo URLs. */
9-
func ReadFileToList(path string) ([]string, error) {
9+
func ReadFileToList(path string) (lines []string, err error) {
1010
file, err := os.Open(path)
1111
if err != nil {
1212
return nil, err
1313
}
14-
defer file.Close() // TODO unhandled error
14+
15+
defer func() {
16+
cerr := file.Close()
17+
if err == nil {
18+
err = cerr
19+
}
20+
}()
1521

1622
scanner := bufio.NewScanner(file)
17-
var lines []string
1823
for scanner.Scan() {
1924
lines = append(lines, scanner.Text())
2025
}

0 commit comments

Comments
 (0)