Skip to content

Commit

Permalink
♻️ Move Helpers from cmd/ to pkg/
Browse files Browse the repository at this point in the history
  • Loading branch information
UltiRequiem committed Sep 17, 2021
1 parent 93810c0 commit cd2a66b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 22 deletions.
16 changes: 16 additions & 0 deletions cmd/params.go
Original file line number Diff line number Diff line change
@@ -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()

}
9 changes: 5 additions & 4 deletions cmd/root.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package cmd

import (
"github.com/UltiRequiem/yamlfmt/pkg"
"log"
"os"
)

// yamlfmt entry point
func Init() {
overwrite, indent, logFiles, multipleArgs, files := getParams()

if multipleArgs {
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++ {
Expand All @@ -25,7 +25,8 @@ func Init() {

}

} else {
formatStream(os.Stdin, os.Stdout, *indent)
return
}

yamlfmt.FormatStream(os.Stdin, os.Stdout, *indent)
}
24 changes: 6 additions & 18 deletions cmd/utils.go → pkg/root.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package cmd
package yamlfmt

import (
"bytes"
"flag"
"fmt"
"io"
"log"
Expand All @@ -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()
Expand All @@ -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{}
Expand All @@ -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)
}
Expand Down

0 comments on commit cd2a66b

Please sign in to comment.