feat(format-servers): add json format option
This commit is contained in:
@@ -16,7 +16,6 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
ErrFormatNotRecognized = errors.New("format is not recognized")
|
||||
ErrProviderUnspecified = errors.New("VPN provider to format was not specified")
|
||||
ErrMultipleProvidersToFormat = errors.New("more than one VPN provider to format were specified")
|
||||
)
|
||||
@@ -43,7 +42,7 @@ func (c *CLI) FormatServers(args []string) error {
|
||||
providersToFormat[provider] = new(bool)
|
||||
}
|
||||
flagSet := flag.NewFlagSet("format-servers", flag.ExitOnError)
|
||||
flagSet.StringVar(&format, "format", "markdown", "Format to use which can be: 'markdown'")
|
||||
flagSet.StringVar(&format, "format", "markdown", "Format to use which can be: 'markdown' or 'json'")
|
||||
flagSet.StringVar(&output, "output", "/dev/stdout", "Output file to write the formatted data to")
|
||||
titleCaser := cases.Title(language.English)
|
||||
for _, provider := range allProviderFlags {
|
||||
@@ -53,9 +52,7 @@ func (c *CLI) FormatServers(args []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if format != "markdown" {
|
||||
return fmt.Errorf("%w: %s", ErrFormatNotRecognized, format)
|
||||
}
|
||||
// Note the format is validated by storage.Format
|
||||
|
||||
// Verify only one provider is set to be formatted.
|
||||
var providers []string
|
||||
@@ -87,7 +84,10 @@ func (c *CLI) FormatServers(args []string) error {
|
||||
return fmt.Errorf("creating servers storage: %w", err)
|
||||
}
|
||||
|
||||
formatted := storage.FormatToMarkdown(providerToFormat)
|
||||
formatted, err := storage.Format(providerToFormat, format)
|
||||
if err != nil {
|
||||
return fmt.Errorf("formatting servers: %w", err)
|
||||
}
|
||||
|
||||
output = filepath.Clean(output)
|
||||
file, err := os.OpenFile(output, os.O_TRUNC|os.O_WRONLY|os.O_CREATE, 0644)
|
||||
|
||||
Reference in New Issue
Block a user