@@ -28,12 +28,26 @@ func realMain() int {
2828
2929 fixes , err := govulncheck .Parse (os .Stdin )
3030 if err != nil {
31- fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
31+ _ , _ = fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
3232 return 1
3333 }
3434
35+ var f * os.File
36+ if * outFile != "" && * outFile != "-" {
37+ f , err = os .Create (* outFile )
38+ if err != nil {
39+ _ , _ = fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
40+ return 1
41+ }
42+ defer func () { _ = f .Close () }()
43+ }
44+
3545 if len (fixes ) == 0 {
36- fmt .Fprintln (os .Stderr , "vulnfix: no fixable vulnerabilities found" )
46+ if f != nil {
47+ _ , _ = f .WriteString ("# Vulnerability Report\n \n No vulnerabilities found.\n " )
48+ }
49+
50+ _ , _ = fmt .Fprintln (os .Stdout , "vulnfix: no fixable vulnerabilities found" )
3751 return 0
3852 }
3953
@@ -42,18 +56,11 @@ func realMain() int {
4256 versions [mod ] = fix .Version
4357 }
4458 if err = modfix .Apply (ctx , * dir , versions ); err != nil {
45- fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
59+ _ , _ = fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
4660 return 1
4761 }
4862
49- if * outFile != "" && * outFile != "-" {
50- f , err := os .Create (* outFile )
51- if err != nil {
52- fmt .Fprintf (os .Stderr , "vulnfix: %v\n " , err )
53- return 1
54- }
55- defer func () { _ = f .Close () }()
56-
63+ if f != nil {
5764 report .Write (f , fixes )
5865 }
5966 return 0
0 commit comments