From cd2a66b792abeb7b0375127e712da812b8214d6b Mon Sep 17 00:00:00 2001 From: Eliaz Bobadilla Date: Fri, 17 Sep 2021 16:33:26 -0500 Subject: [PATCH] :recycle: Move Helpers from cmd/ to pkg/ --- cmd/params.go | 16 ++++++++++++++++ cmd/root.go | 9 +++++---- cmd/utils.go => pkg/root.go | 24 ++++++------------------ 3 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 cmd/params.go rename cmd/utils.go => pkg/root.go (57%) diff --git a/cmd/params.go b/cmd/params.go new file mode 100644 index 0000000..4b44cd9 --- /dev/null +++ b/cmd/params.go @@ -0,0 +1,16 @@ +package cmd + +import ( + "flag" +) + +func getParams() (*bool, *int, bool, bool, []string) { + overwrite := flag.Bool("w", false, "Overwrite the input file") + indent := flag.Int("indent", 2, "Default indent") + log := flag.Bool("l", false, "Log when a file is formatted") + + flag.Parse() + + return overwrite, indent, *log, flag.NArg() > 0, flag.Args() + +} diff --git a/cmd/root.go b/cmd/root.go index f39f756..8ebc834 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,11 +1,11 @@ package cmd import ( + "github.com/UltiRequiem/yamlfmt/pkg" "log" "os" ) -// yamlfmt entry point func Init() { overwrite, indent, logFiles, multipleArgs, files := getParams() @@ -13,7 +13,7 @@ func Init() { channel := make(chan string) for _, file := range files { - go formatFile(file, *indent, *overwrite, channel) + go yamlfmt.FormatFile(file, *indent, *overwrite, channel) } for i := 0; i < len(files); i++ { @@ -25,7 +25,8 @@ func Init() { } - } else { - formatStream(os.Stdin, os.Stdout, *indent) + return } + + yamlfmt.FormatStream(os.Stdin, os.Stdout, *indent) } diff --git a/cmd/utils.go b/pkg/root.go similarity index 57% rename from cmd/utils.go rename to pkg/root.go index 9fc1bcf..4330aa6 100644 --- a/cmd/utils.go +++ b/pkg/root.go @@ -1,8 +1,7 @@ -package cmd +package yamlfmt import ( "bytes" - "flag" "fmt" "io" "log" @@ -11,18 +10,7 @@ import ( "gopkg.in/yaml.v3" ) -func getParams() (*bool, *int, bool, bool, []string) { - overwrite := flag.Bool("w", false, "Overwrite the input file") - indent := flag.Int("indent", 2, "Default indent") - log := flag.Bool("l", false, "Log when a file is formatted") - - flag.Parse() - - return overwrite, indent, *log, flag.NArg() > 0, flag.Args() - -} - -func formatFile(file string, indent int, overwrite bool, channel chan string) { +func FormatFile(file string, indent int, overwrite bool, channel chan string) { r, err := os.Open(file) defer r.Close() @@ -33,18 +21,18 @@ func formatFile(file string, indent int, overwrite bool, channel chan string) { var out bytes.Buffer - if err := formatStream(r, &out, indent); err != nil { + if err := FormatStream(r, &out, indent); err != nil { log.Fatalf("Failed formatting YAML stream: '%s'", err) } - if e := dumpStream(&out, file, overwrite); e != nil { + if e := DumpStream(&out, file, overwrite); e != nil { log.Fatalf("Cannot overwrite %s: '%s'", file, e) } channel <- fmt.Sprintf("%s formatted!", file) } -func formatStream(r io.Reader, out io.Writer, indent int) error { +func FormatStream(r io.Reader, out io.Writer, indent int) error { d := yaml.NewDecoder(r) in := yaml.Node{} @@ -70,7 +58,7 @@ func formatStream(r io.Reader, out io.Writer, indent int) error { return nil } -func dumpStream(out *bytes.Buffer, f string, overwrite bool) error { +func DumpStream(out *bytes.Buffer, f string, overwrite bool) error { if overwrite { return os.WriteFile(f, out.Bytes(), 0744) }