66 "fmt"
77 "io"
88 "os"
9+ "path/filepath"
910
1011 "github.com/WebReflection/flatted/golang/pkg/flatted"
1112)
@@ -24,8 +25,11 @@ func flatten(r io.Reader, w io.Writer) error {
2425 if err != nil {
2526 return err
2627 }
27- fmt .Fprintln (w , s )
28- return nil
28+ if _ , err := w .Write ([]byte (s )); err != nil {
29+ return err
30+ }
31+ _ , err = w .Write ([]byte ("\n " ))
32+ return err
2933}
3034
3135// unflatten reads flatted JSON from r and writes standard JSON to w.
@@ -42,18 +46,22 @@ func unflatten(r io.Reader, w io.Writer) error {
4246 if err != nil {
4347 return err
4448 }
45- fmt .Fprintln (w , string (output ))
46- return nil
49+ if _ , err := w .Write (output ); err != nil {
50+ return err
51+ }
52+ _ , err = w .Write ([]byte ("\n " ))
53+ return err
4754}
4855
4956func main () {
57+ exe := filepath .Base (os .Args [0 ])
5058 var decompress bool
5159 flag .BoolVar (& decompress , "d" , false , "decompress (unflatten)" )
5260 flag .BoolVar (& decompress , "decompress" , false , "decompress (unflatten)" )
5361 flag .BoolVar (& decompress , "unflatten" , false , "decompress (unflatten)" )
5462
5563 flag .Usage = func () {
56- fmt .Fprintf (os .Stderr , "Usage: %s [OPTION]... [FILE]\n " , os . Args [ 0 ] )
64+ fmt .Fprintf (os .Stderr , "Usage: %s [OPTION]... [FILE]\n " , exe )
5765 fmt .Fprintln (os .Stderr , "Flatten or unflatten circular JSON structures." )
5866 fmt .Fprintln (os .Stderr , "" )
5967 fmt .Fprintln (os .Stderr , "Options:" )
@@ -68,10 +76,10 @@ func main() {
6876 if flag .NArg () > 0 && flag .Arg (0 ) != "-" {
6977 f , err := os .Open (flag .Arg (0 ))
7078 if err != nil {
71- fmt .Fprintf (os .Stderr , "%s: %v\n " , os . Args [ 0 ] , err )
79+ fmt .Fprintf (os .Stderr , "%s: %v\n " , exe , err ) // #nosec G705
7280 os .Exit (1 )
7381 }
74- defer f .Close ()
82+ defer func () { _ = f .Close () } ()
7583 r = f
7684 }
7785
@@ -83,7 +91,7 @@ func main() {
8391 }
8492
8593 if err != nil {
86- fmt .Fprintf (os .Stderr , "%s: %v\n " , os . Args [ 0 ] , err )
94+ fmt .Fprintf (os .Stderr , "%s: %v\n " , exe , err ) // #nosec G705
8795 os .Exit (1 )
8896 }
8997}
0 commit comments