From 6b3c281c00cf8102dbe52855f07d9981b8429054 Mon Sep 17 00:00:00 2001 From: Joseph Kato Date: Wed, 6 Jan 2021 23:59:26 -0800 Subject: [PATCH] chore: make pkg structure work with GoReleaser Signed-off-by: Joseph Kato --- .gitignore | 3 +- cmd/vale/flag.go | 38 ------------------------- cmd/vale/main.go | 17 ++++++------ {cmd/vale => internal/cli}/color.go | 2 +- {cmd/vale => internal/cli}/command.go | 11 ++++---- {cmd/vale => internal/cli}/common.go | 2 +- {cmd/vale => internal/cli}/custom.go | 2 +- {cmd/vale => internal/cli}/error.go | 2 +- internal/cli/flag.go | 40 +++++++++++++++++++++++++++ {cmd/vale => internal/cli}/funcs.go | 2 +- {cmd/vale => internal/cli}/info.go | 8 +++--- {cmd/vale => internal/cli}/json.go | 2 +- {cmd/vale => internal/cli}/line.go | 2 +- {cmd/vale => internal/cli}/util.go | 2 +- 14 files changed, 68 insertions(+), 65 deletions(-) delete mode 100644 cmd/vale/flag.go rename {cmd/vale => internal/cli}/color.go (99%) rename {cmd/vale => internal/cli}/command.go (69%) rename {cmd/vale => internal/cli}/common.go (97%) rename {cmd/vale => internal/cli}/custom.go (98%) rename {cmd/vale => internal/cli}/error.go (99%) create mode 100644 internal/cli/flag.go rename {cmd/vale => internal/cli}/funcs.go (98%) rename {cmd/vale => internal/cli}/info.go (92%) rename {cmd/vale => internal/cli}/json.go (97%) rename {cmd/vale => internal/cli}/line.go (98%) rename {cmd/vale => internal/cli}/util.go (95%) diff --git a/.gitignore b/.gitignore index e992c7aa..7247f027 100644 --- a/.gitignore +++ b/.gitignore @@ -25,8 +25,7 @@ fixtures/formats/Sphinx/_build/ .bundle .vagrant -cmd/vale/flag_closed.go -rule/grammar_closed.go +internal/cli/flag_closed.go diff --git a/cmd/vale/flag.go b/cmd/vale/flag.go deleted file mode 100644 index edea348e..00000000 --- a/cmd/vale/flag.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "flag" - - "github.com/errata-ai/vale/v2/internal/core" - "github.com/mholt/archiver/v3" -) - -var flags core.CLIFlags -var zip archiver.Unarchiver - -func init() { - flag.StringVar(&flags.Sources, "sources", "", "config files to load") - flag.StringVar(&flags.Glob, "glob", "*", - `A glob pattern (e.g., --glob='*.{md,txt}).'`) - flag.StringVar(&flags.Path, "config", "", - `A file path (e.g., --config='some/file/path/.vale.ini').`) - flag.StringVar(&flags.AlertLevel, "minAlertLevel", "", - `Lowest alert level to display (e.g., --minAlertLevel=error).`) - flag.StringVar(&flags.Output, "output", "CLI", - `Output style ("line", "JSON", or a template file).`) - flag.StringVar(&flags.InExt, "ext", ".txt", - `Extension to associate with stdin (e.g., --ext=.md).`) - - flag.BoolVar(&flags.Wrap, "no-wrap", false, "Don't wrap CLI output.") - flag.BoolVar(&flags.NoExit, "no-exit", false, - "Don't return a nonzero exit code on errors.") - flag.BoolVar(&flags.Local, "mode-compat", false, - "prioritize local Vale configurations") - flag.BoolVar(&flags.Sorted, "sort", false, - "sort files by their name in output") - flag.BoolVar(&flags.Normalize, "normalize", false, - "replace each path separator with a slash ('/')") - flag.BoolVar(&flags.Simple, "ignore-syntax", false, - "Lint all files line-by-line.") - flag.BoolVar(&flags.Relative, "relative", false, "return relative paths") -} diff --git a/cmd/vale/main.go b/cmd/vale/main.go index e8e9220e..ebcf6d5a 100755 --- a/cmd/vale/main.go +++ b/cmd/vale/main.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" + "github.com/errata-ai/vale/v2/internal/cli" "github.com/errata-ai/vale/v2/internal/core" "github.com/errata-ai/vale/v2/internal/lint" ) @@ -76,7 +77,7 @@ func doLint(args []string, l *lint.Linter, glob string) ([]*core.File, error) { } func handleError(err error) { - ShowError(err, flags.Output, os.Stderr) + cli.ShowError(err, cli.Flags.Output, os.Stderr) os.Exit(2) } @@ -84,9 +85,9 @@ func main() { v := flag.Bool("v", false, "prints current version") flag.Parse() - config, err := core.NewConfig(&flags) + config, err := core.NewConfig(&cli.Flags) if err != nil { - ShowError(err, flags.Output, os.Stderr) + cli.ShowError(err, cli.Flags.Output, os.Stderr) } if *v { @@ -98,7 +99,7 @@ func main() { argc := len(args) if argc == 0 && !stat() { - printIntro() + cli.PrintIntro() } if err := validateFlags(config); err != nil { @@ -108,7 +109,7 @@ func main() { } if argc > 0 { - cmd, exists := actions[args[0]] + cmd, exists := cli.Actions[args[0]] if exists { if err = cmd(args[1:], config); err != nil { os.Exit(2) @@ -122,15 +123,15 @@ func main() { handleError(err) } - linted, err := doLint(args, linter, flags.Glob) + linted, err := doLint(args, linter, cli.Flags.Glob) if err != nil { handleError(err) } - hasErrors, err := PrintAlerts(linted, config) + hasErrors, err := cli.PrintAlerts(linted, config) if err != nil { handleError(err) - } else if hasErrors && !flags.NoExit { + } else if hasErrors && !cli.Flags.NoExit { os.Exit(1) } diff --git a/cmd/vale/color.go b/internal/cli/color.go similarity index 99% rename from cmd/vale/color.go rename to internal/cli/color.go index 65a115a6..8dd62df8 100755 --- a/cmd/vale/color.go +++ b/internal/cli/color.go @@ -1,4 +1,4 @@ -package main +package cli import ( "fmt" diff --git a/cmd/vale/command.go b/internal/cli/command.go similarity index 69% rename from cmd/vale/command.go rename to internal/cli/command.go index 08d54303..11710598 100644 --- a/cmd/vale/command.go +++ b/internal/cli/command.go @@ -1,4 +1,4 @@ -package main +package cli import ( "flag" @@ -12,21 +12,22 @@ var commandInfo = map[string]string{ "ls-config": "Print the current configuration to stdout and exit.", } -var actions = map[string]func(args []string, cfg *core.Config) error{ +// Actions are the available CLI commands. +var Actions = map[string]func(args []string, cfg *core.Config) error{ "ls-config": printConfig, "dc": printConfig, "help": printUsage, } func printConfig(args []string, cfg *core.Config) error { - cfg, err := core.NewConfig(&flags) + cfg, err := core.NewConfig(&Flags) if err != nil { - ShowError(err, flags.Output, os.Stderr) + ShowError(err, Flags.Output, os.Stderr) } err = core.From("ini", cfg) if err != nil { - ShowError(err, flags.Output, os.Stderr) + ShowError(err, Flags.Output, os.Stderr) } fmt.Println(cfg.String()) diff --git a/cmd/vale/common.go b/internal/cli/common.go similarity index 97% rename from cmd/vale/common.go rename to internal/cli/common.go index 26ebce8f..23e26780 100755 --- a/cmd/vale/common.go +++ b/internal/cli/common.go @@ -1,4 +1,4 @@ -package main +package cli import ( "sort" diff --git a/cmd/vale/custom.go b/internal/cli/custom.go similarity index 98% rename from cmd/vale/custom.go rename to internal/cli/custom.go index 8d8053b6..a9b036ee 100644 --- a/cmd/vale/custom.go +++ b/internal/cli/custom.go @@ -1,4 +1,4 @@ -package main +package cli import ( "io/ioutil" diff --git a/cmd/vale/error.go b/internal/cli/error.go similarity index 99% rename from cmd/vale/error.go rename to internal/cli/error.go index 649b4d65..f0f3b002 100644 --- a/cmd/vale/error.go +++ b/internal/cli/error.go @@ -1,4 +1,4 @@ -package main +package cli import ( "errors" diff --git a/internal/cli/flag.go b/internal/cli/flag.go new file mode 100644 index 00000000..62dfd8dd --- /dev/null +++ b/internal/cli/flag.go @@ -0,0 +1,40 @@ +package cli + +import ( + "flag" + + "github.com/errata-ai/vale/v2/internal/core" + "github.com/mholt/archiver/v3" +) + +// Flags are the user-defined CLI flags. +var Flags core.CLIFlags + +var zip archiver.Unarchiver + +func init() { + flag.StringVar(&Flags.Sources, "sources", "", "config files to load") + flag.StringVar(&Flags.Glob, "glob", "*", + `A glob pattern (e.g., --glob='*.{md,txt}).'`) + flag.StringVar(&Flags.Path, "config", "", + `A file path (e.g., --config='some/file/path/.vale.ini').`) + flag.StringVar(&Flags.AlertLevel, "minAlertLevel", "", + `Lowest alert level to display (e.g., --minAlertLevel=error).`) + flag.StringVar(&Flags.Output, "output", "CLI", + `Output style ("line", "JSON", or a template file).`) + flag.StringVar(&Flags.InExt, "ext", ".txt", + `Extension to associate with stdin (e.g., --ext=.md).`) + + flag.BoolVar(&Flags.Wrap, "no-wrap", false, "Don't wrap CLI output.") + flag.BoolVar(&Flags.NoExit, "no-exit", false, + "Don't return a nonzero exit code on errors.") + flag.BoolVar(&Flags.Local, "mode-compat", false, + "prioritize local Vale configurations") + flag.BoolVar(&Flags.Sorted, "sort", false, + "sort files by their name in output") + flag.BoolVar(&Flags.Normalize, "normalize", false, + "replace each path separator with a slash ('/')") + flag.BoolVar(&Flags.Simple, "ignore-syntax", false, + "Lint all files line-by-line.") + flag.BoolVar(&Flags.Relative, "relative", false, "return relative paths") +} diff --git a/cmd/vale/funcs.go b/internal/cli/funcs.go similarity index 98% rename from cmd/vale/funcs.go rename to internal/cli/funcs.go index a6390b6e..3824b920 100644 --- a/cmd/vale/funcs.go +++ b/internal/cli/funcs.go @@ -1,4 +1,4 @@ -package main +package cli import ( "fmt" diff --git a/cmd/vale/info.go b/internal/cli/info.go similarity index 92% rename from cmd/vale/info.go rename to internal/cli/info.go index e6e8c258..73ce18f6 100644 --- a/cmd/vale/info.go +++ b/internal/cli/info.go @@ -1,4 +1,4 @@ -package main +package cli import ( "flag" @@ -16,7 +16,7 @@ var exampleConfig = `StylesPath = a/path/to/your/styles [*] BasedOnStyles = Vale` -var intro = fmt.Sprintf(`vale - A command-line linter for prose [%s] +var intro = fmt.Sprintf(`vale - A command-line linter for prose. %s: %s %s @@ -35,7 +35,6 @@ To get started, you'll need a configuration file (%s): %s See %s for more setup information.`, - aurora.Faint(version), aurora.Bold("Usage"), aurora.Faint("vale [options] [input...]"), @@ -65,7 +64,8 @@ var hidden = []string{ "sources", } -func printIntro() { +// PrintIntro shows basic usage / gettting started info. +func PrintIntro() { fmt.Println(info) os.Exit(0) } diff --git a/cmd/vale/json.go b/internal/cli/json.go similarity index 97% rename from cmd/vale/json.go rename to internal/cli/json.go index 7f1fc190..41bf6e23 100755 --- a/cmd/vale/json.go +++ b/internal/cli/json.go @@ -1,4 +1,4 @@ -package main +package cli import ( "fmt" diff --git a/cmd/vale/line.go b/internal/cli/line.go similarity index 98% rename from cmd/vale/line.go rename to internal/cli/line.go index f6c11e8c..c87b575b 100755 --- a/cmd/vale/line.go +++ b/internal/cli/line.go @@ -1,4 +1,4 @@ -package main +package cli import ( "fmt" diff --git a/cmd/vale/util.go b/internal/cli/util.go similarity index 95% rename from cmd/vale/util.go rename to internal/cli/util.go index 5a50a8ef..d96b18f5 100644 --- a/cmd/vale/util.go +++ b/internal/cli/util.go @@ -1,4 +1,4 @@ -package main +package cli import ( "encoding/json"